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