v25.10

Novo plugin PDF Extractor

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

Exemplo de Uso:

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

// Crie um objeto ExtractTextOptions para definir as instruções
var options = new ExtractTextOptions();
// Adicione o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Realize o processo
var results = PdfExtractor.ExtractText(options);
// Obtenha 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 de um documento PDF com TextFormattingMode.

// Crie um objeto ExtractTextOptions para definir o TextFormattingMode
var options = new ExtractTextOptions(TextFormattingMode.Pure);
// Adicione o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Realize o processo
var results = PdfExtractor.ExtractText(options);
// Obtenha o texto extraído do objeto ResultContainer
var textExtracted = results.ResultCollection[0].ToString();

Exemplo de Uso:

O exemplo demonstra como extrair imagens de um documento PDF.

// Crie ExtractImagesOptions para definir as instruções
var options = new ExtractImagesOptions();
// Adicione o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Defina o caminho do diretório de saída
options.AddOutput(new DirectoryDataSource("path_to_results_directory"));
// Realize o processo
var results = PdfExtractor.ExtractImages(options);
// Obtenha o caminho da imagem resultante
var imageExtracted = results.ResultCollection[0].ToFile();

Exemplo de Uso:

O exemplo demonstra como exportar valores de formulário para um arquivo CSV.

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

Novo plugin PDF Manager

  • Class PdfManager: contém todas as funções dos plugins: Merger, Optimizer, Splitter, TableGenerator, TocGenerator.
  • Class Merger: será removida em breve.
  • Class Optimizer: será removida em breve, use PdfManager.
  • Class Splitter: será removida em breve, use PdfManager.
  • Class TableGenerator: será removida em breve, use PdfManager.
  • Class TocGenerator: será removida em breve, use PdfManager.
  • Veja A Nova Arquitetura de Plugin.

Exemplo de Uso:

O exemplo demonstra como mesclar dois documentos PDF.

// Crie um objeto MergeOptions para definir as instruções
var options = new MergeOptions();
// Adicione 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"));
// Defina o caminho do arquivo de saída
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Realize o processo
PdfManager.Merge(options);

Exemplo de Uso:

O exemplo demonstra como dividir um documento PDF.

// Crie um objeto SplitOptions para definir as instruções
var options = new SplitOptions();
// Adicione o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Defina 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"));
// Realize o processo
PdfManager.Split(options);

Exemplo de Uso:

O exemplo demonstra como otimizar um documento PDF.

// Crie um objeto OptimizeOptions para definir as instruções
var options = new OptimizeOptions();
// Adicione o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Defina o caminho do arquivo de saída
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Realize o processo
PdfManager.Optimize(options);

Exemplo de Uso:

O exemplo demonstra como girar um documento PDF.

// Crie um objeto RotateOptions para definir as instruções
var options = new RotateOptions();
// Defina a nova rotação
options.Rotation = Rotation.On90;
// Adicione o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Defina o caminho do arquivo de saída
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Realize o processo
PdfManager.Rotate(options);

Exemplo de Uso:

O exemplo demonstra como redimensionar um documento PDF.

// Crie um objeto ResizeOptions para definir as instruções
var options = new ResizeOptions();
// Defina o novo PageSize
options.PageSize = PageSize.A3;
// Adicione o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Defina o caminho do arquivo de saída
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Realize o processo
PdfManager.Resize(options);

Exemplo de Uso:

O exemplo demonstra como comprimir um documento PDF.

// Crie um objeto CompressOptions para definir as instruções
var options = new CompressOptions();
// Adicione o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Defina o caminho do arquivo de saída
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Realize o processo
PdfManager.Compress(options);

Exemplo de Uso:

O exemplo demonstra como adicionar uma tabela a um arquivo PDF.

// Configurar 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");
// Adicione o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_input.pdf"));
// Defina o caminho do arquivo de saída
options.AddOutput(new FileDataSource("path_to_output.pdf"));
// Realize o processo
PdfManager.AddTable(options);

Exemplo de Uso:

O exemplo demonstra como adicionar uma tabela de conteúdos a um arquivo PDF.

// Crie um objeto TocOptions para definir as instruções
var options = new TocOptions();
// Defina o título
options.Title = "Minha Tabela de Conteúdos";
// Projetar 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));
// Adicione o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Defina o caminho do arquivo de saída
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Realize o processo
PdfManager.AddTableOfContents(options);

Exemplo de Uso:

O exemplo demonstra como adicionar uma tabela de conteúdos a um arquivo PDF gerando marcadores.

// Crie um objeto TocOptions para definir as instruções
var options = new TocOptions();
// Defina o título
options.Title = "Minha Tabela de Conteúdos";
// Gerar links em marcadores
options.GenerateBookmarks = true;
// Projetar 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));
// Adicione o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Defina o caminho do arquivo de saída
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Realize o processo
PdfManager.AddTableOfContents(options);

Exemplo de Uso:

O exemplo demonstra como adicionar uma tabela de conteúdos a um arquivo PDF e salvar como fluxo.

// Crie um objeto TocOptions para definir as instruções
var options = new TocOptions();
// Defina o título
options.Title = "Minha Tabela de Conteúdos";
// Projetar Títulos
options.Headings.Add(new TocHeading("Introdução", 2, false, 1));
// Adicione o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Defina o fluxo de saída 
var outputStream = new MemoryStream();
options.AddOutput(new StreamDataSource(outputStream));
options.CloseOutputStreams = false;
// Realize o processo
PdfManager.AddTableOfContents(options);

Usabilidade melhorada do TableGenerator

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

Usabilidade melhorada do PdfChatGpt

  • Class PdfChatGpt: é estática e não requer o uso de um construtor.
  • Class PdfChatGptRequestOptions: propriedade CancellationToken adicionada (Movida 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")); // Adicione o caminho do arquivo de saída.
options.ApiKey = "Sua chave de 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 da 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
});

// Processar a solicitação.
await PdfChatGpt.ProcessAsync(options);

Erros Corrigidos

  • Corrigida conversão de html para pdf metadados
  • Corrigidos problemas de formatação de texto e imagens escaladas no PDF para PDFA_3b
  • Corrigido erro na impressão do PDFA resultante
  • Corrigido imagem resultante no PDF para HTML contém fundo
  • Corrigidos caracteres chineses que aparecem como caixas no HTML para PDF
  • Corrigido fonte personalizada em Base64 não é respeitada no HTML para PDF
  • Corrigido CSS de campo de formulário não sendo aplicado no HTML para PDF
  • Corrigido gráfico não está sendo renderizado corretamente no HTML para PDF
  • Corrigidos caracteres especiais não sendo renderizados no HTML para PDF
 Português