v25.10
- 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
v25.9
- Classe DocConverter: é estática e não requer o uso de um construtor.
- Classe PdfToDocOptions: adicionada propriedade “Modo” que permite personalizar o processo de conversão.
- Enum DocConversionMode: permite personalizar o processo de conversão de pdf-doc. Valores:
- TextBox: Este modo é rápido e bom para preservar ao máximo a aparência original do arquivo PDF, mas a editabilidade do documento resultante pode ser limitada. Cada bloco de texto visualmente agrupado no arquivo PDF original é convertido em uma caixa de texto no documento resultante.
- Flow: Modo de reconhecimento completo, o mecanismo realiza agrupamento e análise de múltiplos níveis para restaurar a intenção original do autor do documento e produzir um documento maximamente editável.
Exemplo de Uso:
// O exemplo demonstra como converter um documento PDF para o formato Doc.
// Crie um objeto PdfToDocOptions para definir as instruções
var options = new PdfToDocOptions();
// 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_file.doc"));
// Realize o processo
DocConverter.Process(options);
Exemplo de Uso:
// O exemplo demonstra como converter um documento PDF para o formato Doc configurando o Modo.
// Crie um objeto PdfToDocOptions para definir as instruções
var options = new PdfToDocOptions();
// 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_file.doc"));
// Defina o Modo
options.Mode = DocConversionMode.Flow;
// Realize o processo
DocConverter.Process(options);
Melhor usabilidade do PdfAConverter
Classe PdfAConverter: é estática e não requer o uso de um construtor.
Exemplo de Uso:
// O exemplo demonstra como converter o documento PDF em um formato PDF/A (PDF/A-3b neste caso):
// Crie a classe de opções para configurar o processo de conversão
var options = new PdfAConvertOptions
{
PdfAVersion = PdfAStandardVersion.PDF_A_3B
};
// Adicione o arquivo fonte
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf")); // substitua pelo caminho do seu arquivo
// Adicione o caminho para salvar o arquivo convertido
options.AddOutput(new FileDataSource("path_to_the_converted_file.pdf"));
// Execute a conversão
PdfAConverter.Process(options);
Exemplo de Uso:
// O exemplo demonstra como validar a conformidade do documento PDF com o formato PDF/A (PDF/A-1a neste caso):
// Crie a classe de opções para configurar o processo de validação
var options = new PdfAValidateOptions
{
PdfAVersion = PdfAStandardVersion.PDF_A_1A
};
// Adicione um ou mais arquivos para serem validados
options.AddInput(new FileDataSource("path_to_your_first_pdf_file.pdf")); // substitua pelo caminho do seu arquivo
options.AddInput(new FileDataSource("path_to_your_second_pdf_file.pdf"));
// adicione mais arquivos conforme necessário
// Execute a validação e obtenha os resultados
var resultContainer = PdfAConverter.Process(options);
// Verifique a propriedade resultContainer.ResultCollection para os resultados da validação de cada arquivo:
for (var i = 0; i < resultContainer.ResultCollection.Count; i++)
{
var result = resultContainer.ResultCollection[i];
var validationResult = (PdfAValidationResult) result.Data;
var isValid = validationResult.IsValid; // Resultado da validação para o i-ésimo documento
}
Melhor usabilidade do Timestamp
Classe Timestamp: é estática e não requer o uso de um construtor.
Exemplo de Uso:
// O exemplo demonstra como adicionar um Timestamp ao documento.
// Crie um objeto AddTimestampOptions para definir as instruções
var options = new AddTimestampOptions("path_to_your_pfx_file.pfx", "password_for_your_pfx_file", "timestamp_server_url");
// 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
Timestamp.Process(options);
Documentação atualizada
Exemplos atualizados, adicionados exemplos extras:
- Informações sobre licença e Avaliação
- Páginas do produto
- Gerador de Tabelas PDF
- Gerador de TOC PDF
- Adicionador de Timestamp PDF
- Conversor PDF/A
- Extrator de Imagem PDF
- Extrator de Texto PDF
- Conversor PDF para XLS
- Conversor PDF para HTML
Bugs corrigidos
- Corrigidos problemas com HTML para PDF
- Corrigidos problemas com PDF para PDF/A-2B
- Melhorado PDF para JPEG: alguns caracteres de texto gerados como quadrados
- Corrigido renderização de PDF para TIFF
- Corrigidos exceções inesperadas de PDF para JPEG
v25.8
Melhoria na usabilidade do JpegConverter
Class JpegConverter: é estático e não requer o uso de um construtor.
Exemplo de uso:
// O exemplo demonstra como converter um documento PDF em formato JPEG.
// Crie um objeto PdfToJpegOptions para definir as instruções
var options = new PdfToJpegOptions();
// Adicione o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_input.pdf"));
// Defina o caminho do diretório de saída
options.AddOutput(new DirectoryDataSource("path_to_output_directory"));
// Execute o processo
JpegConverter.Process(options);
Melhoria na usabilidade do PngConverter
Class PngConverter: é estático e não requer o uso de um construtor.
Exemplo de uso:
// O exemplo demonstra como converter um documento PDF em formato PNG.
// Crie um objeto PdfToPngOptions para definir as instruções
var options = new PdfToPngOptions();
// Adicione o caminho do arquivo de entrada
options.AddInput(new FileDataSource("path_to_input.pdf"));
// Defina o caminho do diretório de saída
options.AddOutput(new DirectoryDataSource("path_to_output_directory"));
// Execute o processo
PngConverter.Process(options);
Melhoria na usabilidade do XlsConverter
- Class XlsConverter: é estático e não requer o uso de um construtor.
- Class XlsConverter: descrição corrigida.
Exemplo de uso:
// O exemplo demonstra como converter PDF em documento XLSX.
// Crie um objeto PdfToXlsOptions para definir as instruções
var options = new PdfToXlsOptions();
// 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_xlsx_file.xlsx"));
// Execute o processo
XlsConverter.Process(options);
Melhoria na usabilidade da Assinatura
- Class Signature: é estático e não requer o uso de um construtor.
- Class Signature: descrição corrigida.
- Class Signature: interface IPlugin removida.
Exemplo de uso:
// O exemplo demonstra como assinar um documento PDF.
// Crie um objeto SignOptions para definir as instruções
var options = new SignOptions("path_to_your_pfx_file.pfx", "password_of_your_pfx_file");
// 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"));
// Execute o processo
Signature.Process(options);
Construtores modificados de PdfToHtmlOptions
Construtores e argumentos otimizados.
Texto da marca de avaliação alterado.
Documentação atualizada
Exemplos atualizados, adicionados exemplos extras:
- Conversor de PDF para JPEG
- Conversor de PDF para PNG
- Conversor de PDF para TIFF
- Aplainador de Formulários PDF
- Conversor HTML
- Segurança de PDF
- Otimizador de PDF
- Mesclador de PDF
- Divisor de PDF
Bugs corrigidos
- Corrigir problemas com Anotações
- Corrigir problemas após redimensionamento
- Corrigir a transformação de Nomes de Fonte de PDF para PDF/A
- Corrigir PDF para DOCX - Espaço adicionado no cabeçalho e outros problemas
- Corrigir HTML para PDF - Fundo PNG Transparente
- Corrigir PDF Comprimido - Melhorar o trabalho com Adobe Acrobat