v25.10

Новый плагин PDF Extractor

  • Класс PdfExtractor: содержит все функции плагинов: TextExtractor, ImageExtractor, FormExporter.
  • Класс TextExtractor: будет удален в ближайшее время, используйте PdfExtractor.
  • Класс ImageExtractor: будет удален в ближайшее время, используйте PdfExtractor.
  • Класс FormExporter: будет удален в ближайшее время, используйте PdfExtractor.
  • Класс TextExtractorOptions: переименован в Класс ExtractTextOptions.
  • Класс ImageExtractorOptions: переименован в Класс ExtractImagesOptions.
  • Класс FormExportToDsvOptions: переименован в Класс ExtractFormDataToDsvOptions.

Пример использования:

Пример показывает, как извлечь текстовое содержимое PDF-документа.

// Создать объект ExtractTextOptions для установки инструкций
var options = new ExtractTextOptions();
// Добавить путь к входному файлу
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Выполнить процесс
var results = PdfExtractor.ExtractText(options);
// Получить извлеченный текст из объекта ResultContainer
var textExtracted = results.ResultCollection[0].ToString();

Пример использования:

Пример показывает, как извлечь текстовое содержимое PDF-документа с TextFormattingMode.

// Создать объект ExtractTextOptions для установки TextFormattingMode
var options = new ExtractTextOptions(TextFormattingMode.Pure);
// Добавить путь к входному файлу
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Выполнить процесс
var results = PdfExtractor.ExtractText(options);
// Получить извлеченный текст из объекта ResultContainer
var textExtracted = results.ResultCollection[0].ToString();

Пример использования:

Пример показывает, как извлечь изображения из PDF-документа.

// Создать ExtractImagesOptions для установки инструкций
var options = new ExtractImagesOptions();
// Добавить путь к входному файлу
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Установить путь к выходному каталогу
options.AddOutput(new DirectoryDataSource("path_to_results_directory"));
// Выполнить процесс
var results = PdfExtractor.ExtractImages(options);
// Получить путь к результату изображения
var imageExtracted = results.ResultCollection[0].ToFile();

Пример использования:

Пример показывает, как экспортировать значения формы в CSV-файл.

// Создать объект ExtractFormDataToDsvOptions для установки инструкций
var options = new ExtractFormDataToDsvOptions(',', true);
// Добавить путь к входному файлу
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Установить путь к выходному файлу
options.AddOutput(new FileDataSource("path_to_result_csv_file.csv"));
// Выполнить процесс
PdfExtractor.ExtractFormData(options);

Новый плагин PDF Manager

  • Класс PdfManager: содержит все функции плагинов: Merger, Optimizer, Splitter, TableGenerator,TocGenerator.
  • Класс Merger: будет удален в ближайшее время.
  • Класс Optimizer: будет удален в ближайшее время, используйте PdfManager.
  • Класс Splitter: будет удален в ближайшее время, используйте PdfManager.
  • Класс TableGenerator: будет удален в ближайшее время, используйте PdfManager.
  • Класс TocGenerator: будет удален в ближайшее время, используйте PdfManager.

Пример использования:

Пример показывает, как объединить два PDF-документа.

// Создать объект MergeOptions для установки инструкций
var options = new MergeOptions();
// Добавить пути к входным файлам
options.AddInput(new FileDataSource("path_to_your_pdf_file_1.pdf"));
options.AddInput(new FileDataSource("path_to_your_pdf_file_2.pdf"));
// Установить путь к выходному файлу
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Выполнить процесс
PdfManager.Merge(options);

Пример использования:

Пример показывает, как разделить PDF-документ.

// Создать объект SplitOptions для установки инструкций
var options = new SplitOptions();
// Добавить путь к входному файлу
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Установить пути к выходным файлам
options.AddOutput(new FileDataSource("path_to_result_pdf_file_1.pdf"));
options.AddOutput(new FileDataSource("path_to_result_pdf_file_2.pdf"));
// Выполнить процесс
PdfManager.Split(options);

Пример использования:

Пример показывает, как оптимизировать PDF-документ.

// Создать объект OptimizeOptions для установки инструкций
var options = new OptimizeOptions();
// Добавить путь к входному файлу
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Установить путь к выходному файлу
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Выполнить процесс
PdfManager.Optimize(options);

Пример использования:

Пример показывает, как повернуть PDF-документ.

// Создать объект RotateOptions для установки инструкций
var options = new RotateOptions();
// Установить новое вращение
options.Rotation = Rotation.On90;
// Добавить путь к входному файлу
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Установить путь к выходному файлу
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Выполнить процесс
PdfManager.Rotate(options);

Пример использования:

Пример показывает, как изменить размер PDF-документа.

// Создать объект ResizeOptions для установки инструкций
var options = new ResizeOptions();
// Установить новый размер страницы
options.PageSize = PageSize.A3;
// Добавить путь к входному файлу
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Установить путь к выходному файлу
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Выполнить процесс
PdfManager.Resize(options);

Пример использования:

Пример показывает, как сжать PDF-документ.

// Создать объект CompressOptions для установки инструкций
var options = new CompressOptions();
// Добавить путь к входному файлу
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Установить путь к выходному файлу
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Выполнить процесс
PdfManager.Compress(options);

Пример использования:

Пример показывает, как добавить таблицу в PDF-файл.

// Настроить параметры таблицы
var options = new TableOptions();
options.InsertPageBefore(1)
   .AddTable()
        .AddRow()
            .AddCell().AddParagraph("Имя")
            .AddCell().AddParagraph("Возраст")
        .AddRow()
            .AddCell().AddParagraph("Боб")
            .AddCell().AddParagraph("12")
        .AddRow()
            .AddCell().AddParagraph("Сэм")
            .AddCell().AddParagraph("20")
        .AddRow()
            .AddCell().AddParagraph("Сэнди")
            .AddCell().AddParagraph("26")
        .AddRow()
            .AddCell().AddParagraph("Том")
            .AddCell().AddParagraph("12")
        .AddRow()
            .AddCell().AddParagraph("Джим")
            .AddCell().AddParagraph("27");
// Добавить путь к входному файлу
options.AddInput(new FileDataSource("path_to_input.pdf"));
// Установить путь к выходному файлу
options.AddOutput(new FileDataSource("path_to_output.pdf"));
// Выполнить процесс
PdfManager.AddTable(options);

Пример использования:

Пример показывает, как добавить оглавление в PDF-файл.

// Создать объект TocOptions для установки инструкций
var options = new TocOptions();
// Установить заголовок
options.Title = "Мое оглавление";
// Настроить заголовки
options.Headings.Add(new TocHeading("Введение", 2));
options.Headings.Add(new TocHeading("Глава I", 3));
options.Headings.Add(new TocHeading("Глава II", 4));
options.Headings.Add(new TocHeading("Глава III", 5));
// Добавить путь к входному файлу
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Установить путь к выходному файлу
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Выполнить процесс
PdfManager.AddTableOfContents(options);

Пример использования:

Пример показывает, как добавить оглавление в PDF-файл с созданием закладок.

// Создать объект TocOptions для установки инструкций
var options = new TocOptions();
// Установить заголовок
options.Title = "Мое оглавление";
// Генерировать ссылки в закладках
options.GenerateBookmarks = true;
// Настроить заголовки
options.Headings.Add(new TocHeading("Введение", 2, false, 1));
options.Headings.Add(new TocHeading("Глава I", 3, true, 1));
options.Headings.Add(new TocHeading("Глава II", 4, true, 1));
options.Headings.Add(new TocHeading("Пример A", 4, true, 2));
options.Headings.Add(new TocHeading("Пример B", 4, true, 2));
options.Headings.Add(new TocHeading("Пример C", 4, true, 2));
options.Headings.Add(new TocHeading("Пример D", 4, true, 2));
options.Headings.Add(new TocHeading("Глава III", 5, true, 1));
// Добавить путь к входному файлу
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Установить путь к выходному файлу
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Выполнить процесс
PdfManager.AddTableOfContents(options);

Пример использования:

Пример показывает, как добавить оглавление в PDF-файл и сохранить как поток.

// Создать объект TocOptions для установки инструкций
var options = new TocOptions();
// Установить заголовок
options.Title = "Мое оглавление";
// Настроить заголовки
options.Headings.Add(new TocHeading("Введение", 2, false, 1));
// Добавить путь к входному файлу
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Установить выходной поток 
var outputStream = new MemoryStream();
options.AddOutput(new StreamDataSource(outputStream));
options.CloseOutputStreams = false;
// Выполнить процесс
PdfManager.AddTableOfContents(options);

Улучшенная удобство использования TableGenerator

  • Класс TableGenerator: статический и не требует использования конструктора.
  • Класс TableGenerator: помечен как устаревший. Используйте PdfManager вместо.

Улучшенная удобство использования PdfChatGpt

  • Класс PdfChatGpt: статический и не требует использования конструктора.
  • Класс PdfChatGptRequestOptions: добавлено свойство CancellationToken (перемещено из PdfChatGpt).

Пример использования:

Пример показывает, как использовать плагин PdfChatGpt, добавляя сообщения к запросу.

var options = new PdfChatGptRequestOptions();
options.AddOutput(new FileDataSource("PdfChatGPT_output.pdf")); // Добавить путь к выходному файлу.
options.ApiKey = "Ваш API-ключ."; // Вам необходимо предоставить ключ для доступа к API.
options.MaxTokens = 1000; // Максимальное количество токенов для генерации в завершающем чате.
// для отмены
// var cancelTokenSource = new CancellationTokenSource();
// var cToken = cancelTokenSource.Token;
// options.CancellationToken = cToken;

// Добавьте сообщения запроса.
options.Messages.Add(new Message
{
    Content = "Вы полезный помощник.",
    Role = Role.System
});
options.Messages.Add(new Message
{
    Content = "Какой самый большой диаметр пиццы когда-либо сделанной?",
    Role = Role.User
});

// Обработать запрос.
var result = await PdfChatGpt.ProcessAsync(options);

Исправленные ошибки

  • Исправлено преобразование HTML в PDF метаданных
  • Исправлено преобразование PDF в PDF/A_3b - Проблемы с форматированием текста и изображения масштабируются
  • Исправлено преобразование PDF в PDFA: результирующий PDFA выдает ошибку при печати
  • Исправлено преобразование PDF в HTML: результирующее изображение содержит фон
  • Исправлено преобразование HTML в PDF: некоторые китайские символы отображаются как коробки
  • Исправлено преобразование HTML в PDF: пользовательский шрифт Base64 не учитывается
  • Исправлено преобразование HTML в PDF: CSS для полей формы не применяется
  • Исправлено преобразование HTML в PDF: диаграмма неправильно отображается
  • Исправлено преобразование HTML в PDF: специальные символы не отображаются
 Русский