v25.10

Novo plugin PDF Extractor

  • Classe PdfExtractor: contém todas as funções dos plugins: TextExtractor, ImageExtractor, FormExporter.
  • Classe TextExtractor: será removida em breve, use PdfExtractor.
  • Classe ImageExtractor: será removida em breve, use PdfExtractor.
  • Classe FormExporter: será removida em breve, use PdfExtractor.
  • Classe TextExtractorOptions: renomeada para Classe ExtractTextOptions.
  • Classe ImageExtractorOptions: renomeada para Classe ExtractImagesOptions.
  • Classe FormExportToDsvOptions: renomeada para Classe ExtractFormDataToDsvOptions.

Exemplo de Uso:

O exemplo demonstra como extrair o conteúdo de texto do documento PDF.

// Cria o objeto ExtractTextOptions para definir instruções
var options = new ExtractTextOptions();
// Adiciona o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Executa o processo
var results = PdfExtractor.ExtractText(options);
// Obtém o texto extraído do objeto ResultContainer
var textExtracted = results.ResultCollection[0].ToString();

Exemplo de Uso:

O exemplo demonstra como extrair o conteúdo de texto do documento PDF com TextFormattingMode.

// Cria o objeto ExtractTextOptions para definir TextFormattingMode
var options = new ExtractTextOptions(TextFormattingMode.Pure);
// Adiciona o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Executa o processo
var results = PdfExtractor.ExtractText(options);
// Obtém o texto extraído do objeto ResultContainer
var textExtracted = results.ResultCollection[0].ToString();

Exemplo de Uso:

O exemplo demonstra como extrair imagens do documento PDF.

// Cria ExtractImagesOptions para definir instruções
var options = new ExtractImagesOptions();
// Adiciona o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Define o caminho do diretório de saída
options.AddOutput(new DirectoryDataSource("path_to_results_directory"));
// Executa o processo
var results = PdfExtractor.ExtractImages(options);
// Obtém o caminho da imagem resultante
var imageExtracted = results.ResultCollection[0].ToFile();

Exemplo de Uso:

O exemplo demonstra como Exportar valores de Formulário para arquivo CSV.

// Cria o objeto ExtractFormDataToDsvOptions para definir instruções
var options = new ExtractFormDataToDsvOptions(',', true);
// Adiciona o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Define o caminho do arquivo de saída
options.AddOutput(new FileDataSource("path_to_result_csv_file.csv"));
// Executa o processo
PdfExtractor.ExtractFormData(options);

Novo plugin PDF Manager

  • Classe PdfManager: contém todas as funções dos plugins: Merger, Optimizer, Splitter, TableGenerator,TocGenerator.
  • Classe Merger: será removida em breve.
  • Classe Optimizer: será removida em breve, use PdfManager.
  • Classe Splitter: será removida em breve, use PdfManager.
  • Classe TableGenerator: será removida em breve, use PdfManager.
  • Classe TocGenerator: será removida em breve, use PdfManager.

Exemplo de Uso:

O exemplo demonstra como Mesclar dois documentos PDF.

// Cria o objeto MergeOptions para definir instruções
var options = new MergeOptions();
// Adiciona os caminhos dos arquivos de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file_1.pdf"));
options.AddInput(new FileDataSource("path_to_your_pdf_file_2.pdf"));
// Define o caminho do arquivo de saída
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Executa o processo
PdfManager.Merge(options);

Exemplo de Uso:

O exemplo demonstra como Dividir o documento PDF.

// Cria o objeto SplitOptions para definir instruções
var options = new SplitOptions();
// Adiciona o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Define os caminhos dos arquivos de saída
options.AddOutput(new FileDataSource("path_to_result_pdf_file_1.pdf"));
options.AddOutput(new FileDataSource("path_to_result_pdf_file_2.pdf"));
// Executa o processo
PdfManager.Split(options);

Exemplo de Uso:

O exemplo demonstra como Otimizar o documento PDF.

// Cria o objeto OptimizeOptions para definir instruções
var options = new OptimizeOptions();
// Adiciona o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Define o caminho do arquivo de saída
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Executa o processo
PdfManager.Optimize(options);

Exemplo de Uso:

O exemplo demonstra como Girar o documento PDF.

// Cria o objeto RotateOptions para definir instruções
var options = new RotateOptions();
// Define a nova Rotação
options.Rotation = Rotation.On90;
// Adiciona o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Define o caminho do arquivo de saída
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Executa o processo
PdfManager.Rotate(options);

Exemplo de Uso:

O exemplo demonstra como Redimensionar o documento PDF.

// Cria o objeto ResizeOptions para definir instruções
var options = new ResizeOptions();
// Define o novo Tamanho da Página
options.PageSize = PageSize.A3;
// Adiciona o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Define o caminho do arquivo de saída
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Executa o processo
PdfManager.Resize(options);

Exemplo de Uso:

O exemplo demonstra como Compactar o documento PDF.

// Cria o objeto CompressOptions para definir instruções
var options = new CompressOptions();
// Adiciona o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Define o caminho do arquivo de saída
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Executa o processo
PdfManager.Compress(options);

Exemplo de Uso:

O exemplo demonstra como Adicionar uma Tabela ao arquivo PDF.

// Configura opções de tabela
var options = new TableOptions();
options.InsertPageBefore(1)
   .AddTable()
        .AddRow()
            .AddCell().AddParagraph("Nome")
            .AddCell().AddParagraph("Idade")
        .AddRow()
            .AddCell().AddParagraph("Bob")
            .AddCell().AddParagraph("12")
        .AddRow()
            .AddCell().AddParagraph("Sam")
            .AddCell().AddParagraph("20")
        .AddRow()
            .AddCell().AddParagraph("Sandy")
            .AddCell().AddParagraph("26")
        .AddRow()
            .AddCell().AddParagraph("Tom")
            .AddCell().AddParagraph("12")
        .AddRow()
            .AddCell().AddParagraph("Jim")
            .AddCell().AddParagraph("27");
// Adiciona o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_input.pdf"));
// Define o caminho do arquivo de saída
options.AddOutput(new FileDataSource("path_to_output.pdf"));
// Executa o processo
PdfManager.AddTable(options);

Exemplo de Uso:

O exemplo demonstra como adicionar um Índice ao arquivo PDF.

// Cria o objeto TocOptions para definir instruções
var options = new TocOptions();
// Define o Título
options.Title = "Meu Índice";
// Desenha os Títulos
options.Headings.Add(new TocHeading("Introdução", 2));
options.Headings.Add(new TocHeading("Capítulo I", 3));
options.Headings.Add(new TocHeading("Capítulo II", 4));
options.Headings.Add(new TocHeading("Capítulo III", 5));
// Adiciona o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Define o caminho do arquivo de saída
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Executa o processo
PdfManager.AddTableOfContents(options);

Exemplo de Uso:

O exemplo demonstra como adicionar um Índice ao arquivo PDF gerando marcadores.

// Cria o objeto TocOptions para definir instruções
var options = new TocOptions();
// Define o Título
options.Title = "Meu Índice";
// Gera links nos marcadores
options.GenerateBookmarks = true;
// Desenha os Títulos
options.Headings.Add(new TocHeading("Introdução", 2, false, 1));
options.Headings.Add(new TocHeading("Capítulo I", 3, true, 1));
options.Headings.Add(new TocHeading("Capítulo II", 4, true, 1));
options.Headings.Add(new TocHeading("Exemplo A", 4, true, 2));
options.Headings.Add(new TocHeading("Exemplo B", 4, true, 2));
options.Headings.Add(new TocHeading("Exemplo C", 4, true, 2));
options.Headings.Add(new TocHeading("Exemplo D", 4, true, 2));
options.Headings.Add(new TocHeading("Capítulo III", 5, true, 1));
// Adiciona o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Define o caminho do arquivo de saída
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Executa o processo
PdfManager.AddTableOfContents(options);

Exemplo de Uso:

O exemplo demonstra como adicionar um Índice ao arquivo PDF e salvar como fluxo.

// Cria o objeto TocOptions para definir instruções
var options = new TocOptions();
// Define o Título
options.Title = "Meu Índice";
// Desenha os Títulos
options.Headings.Add(new TocHeading("Introdução", 2, false, 1));
// Adiciona o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Define o fluxo de saída 
var outputStream = new MemoryStream();
options.AddOutput(new StreamDataSource(outputStream));
options.CloseOutputStreams = false;
// Executa o processo
PdfManager.AddTableOfContents(options);

Melhorias na usabilidade do TableGenerator

  • Classe TableGenerator: é estática e não requer o uso de um construtor.
  • Classe TableGenerator: marcada como Obsoleta. Use PdfManager em vez disso.

Melhorias na usabilidade do PdfChatGpt

  • Classe PdfChatGpt: é estática e não requer o uso de um construtor.
  • Classe PdfChatGptRequestOptions: adicionada a propriedade CancellationToken (transferida de PdfChatGpt).

Exemplo de Uso:

O exemplo demonstra como usar o plugin PdfChatGpt adicionando mensagens à solicitação.

var options = new PdfChatGptRequestOptions();
options.AddOutput(new FileDataSource("PdfChatGPT_output.pdf")); // Adiciona o caminho do arquivo de saída.
options.ApiKey = "Sua chave API."; // Você precisa fornecer a chave para acessar a API.
options.MaxTokens = 1000; // O número máximo de tokens a serem gerados na conclusão do chat.
// para cancelar
// var cancelTokenSource = new CancellationTokenSource();
// var cToken = cancelTokenSource.Token;
// options.CancellationToken = cToken;

// Adicione as mensagens de solicitação.
options.Messages.Add(new Message
{
    Content = "Você é um assistente útil.",
    Role = Role.System
});
options.Messages.Add(new Message
{
    Content = "Qual é o maior diâmetro de pizza já feito?",
    Role = Role.User
});

// Processa a solicitação.
var result = await PdfChatGpt.ProcessAsync(options);

Correções de Bugs

  • Corrigido metadados da conversão html para pdf
  • Corrigido PDF para PDF/A_3b - Problemas de formatação de texto e imagens escaladas
  • Corrigido PDF para PDFA: relatório PDFA resultante gera erro na impressão
  • Corrigido PDF para HTML: imagem resultante contém fundo
  • Corrigido HTML para PDF: Alguns caracteres chineses aparecem como caixa
  • Corrigido HTML para PDF: Fonte personalizada Base64 não é respeitada
  • Corrigido HTML para PDF: CSS de campo de formulário não é aplicado
  • Corrigido HTML para PDF: gráfico não é renderizado corretamente
  • Corrigido HTML para PDF: caracteres especiais não estão sendo renderizados
6 de out. de 2025
 Português