v25.10
- Class PdfExtractor: contiene todas las funciones de los plugins: TextExtractor, ImageExtractor, FormExporter.
- Class TextExtractor: será eliminado pronto, usa PdfExtractor.
- Class ImageExtractor: será eliminado pronto, usa PdfExtractor.
- Class FormExporter: será eliminado pronto, usa PdfExtractor.
- Class TextExtractorOptions: renombrado a Class ExtractTextOptions.
- Class ImageExtractorOptions: renombrado a Class ExtractImagesOptions.
- Class FormExportToDsvOptions: renombrado a Class ExtractFormDataToDsvOptions.
- Ver La Nueva Arquitectura de Plugins.
Ejemplo de Uso:
El ejemplo demuestra cómo extraer el contenido de texto de un documento PDF.
// Crear objeto ExtractTextOptions para establecer instrucciones
var options = new ExtractTextOptions();
// Agregar ruta del archivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Realizar el proceso
var results = PdfExtractor.ExtractText(options);
// Obtener el texto extraído del objeto ResultContainer
var textExtracted = results.ResultCollection[0].ToString();
Ejemplo de Uso:
El ejemplo demuestra cómo extraer contenido de texto de un documento PDF con TextFormattingMode.
// Crear objeto ExtractTextOptions para establecer TextFormattingMode
var options = new ExtractTextOptions(TextFormattingMode.Pure);
// Agregar ruta del archivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Realizar el proceso
var results = PdfExtractor.ExtractText(options);
// Obtener el texto extraído del objeto ResultContainer
var textExtracted = results.ResultCollection[0].ToString();
Ejemplo de Uso:
El ejemplo demuestra cómo extraer imágenes de un documento PDF.
// Crear ExtractImagesOptions para establecer instrucciones
var options = new ExtractImagesOptions();
// Agregar ruta del archivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Establecer la ruta del directorio de salida
options.AddOutput(new DirectoryDataSource("path_to_results_directory"));
// Realizar el proceso
var results = PdfExtractor.ExtractImages(options);
// Obtener la ruta de la imagen resultante
var imageExtracted = results.ResultCollection[0].ToFile();
Ejemplo de Uso:
El ejemplo demuestra cómo Exportar valores de formulario a un archivo CSV.
// Crear objeto ExtractFormDataToDsvOptions para establecer instrucciones
var options = new ExtractFormDataToDsvOptions(',', true);
// Agregar ruta del archivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Establecer ruta del archivo de salida
options.AddOutput(new FileDataSource("path_to_result_csv_file.csv"));
// Realizar el proceso
PdfExtractor.ExtractFormData(options);
Nuevo plugin Administrador de PDF
- Class PdfManager: contiene todas las funciones de los plugins: Merger, Optimizer, Splitter, TableGenerator, TocGenerator.
- Class Merger: será eliminado pronto.
- Class Optimizer: será eliminado pronto, usa PdfManager.
- Class Splitter: será eliminado pronto, usa PdfManager.
- Class TableGenerator: será eliminado pronto, usa PdfManager.
- Class TocGenerator: será eliminado pronto, usa PdfManager.
- Ver La Nueva Arquitectura de Plugins.
Ejemplo de Uso:
El ejemplo demuestra cómo combinar dos documentos PDF.
// Crear objeto MergeOptions para establecer instrucciones
var options = new MergeOptions();
// Agregar rutas de archivos de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file_1.pdf"));
options.AddInput(new FileDataSource("path_to_your_pdf_file_2.pdf"));
// Establecer ruta del archivo de salida
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Realizar el proceso
PdfManager.Merge(options);
Ejemplo de Uso:
El ejemplo demuestra cómo dividir un documento PDF.
// Crear objeto SplitOptions para establecer instrucciones
var options = new SplitOptions();
// Agregar ruta del archivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Establecer rutas de archivos de salida
options.AddOutput(new FileDataSource("path_to_result_pdf_file_1.pdf"));
options.AddOutput(new FileDataSource("path_to_result_pdf_file_2.pdf"));
// Realizar el proceso
PdfManager.Split(options);
Ejemplo de Uso:
El ejemplo demuestra cómo optimizar un documento PDF.
// Crear objeto OptimizeOptions para establecer instrucciones
var options = new OptimizeOptions();
// Agregar ruta del archivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Establecer ruta del archivo de salida
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Realizar el proceso
PdfManager.Optimize(options);
Ejemplo de Uso:
El ejemplo demuestra cómo rotar un documento PDF.
// Crear objeto RotateOptions para establecer instrucciones
var options = new RotateOptions();
// Establecer nueva rotación
options.Rotation = Rotation.On90;
// Agregar ruta del archivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Establecer ruta del archivo de salida
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Realizar el proceso
PdfManager.Rotate(options);
Ejemplo de Uso:
El ejemplo demuestra cómo cambiar el tamaño de un documento PDF.
// Crear objeto ResizeOptions para establecer instrucciones
var options = new ResizeOptions();
// Establecer nuevo tamaño de página
options.PageSize = PageSize.A3;
// Agregar ruta del archivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Establecer ruta del archivo de salida
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Realizar el proceso
PdfManager.Resize(options);
Ejemplo de Uso:
El ejemplo demuestra cómo comprimir un documento PDF.
// Crear objeto CompressOptions para establecer instrucciones
var options = new CompressOptions();
// Agregar ruta del archivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Establecer ruta del archivo de salida
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Realizar el proceso
PdfManager.Compress(options);
Ejemplo de Uso:
El ejemplo demuestra cómo agregar una tabla a un archivo PDF.
// Configurar opciones de tabla
var options = new TableOptions();
options.InsertPageBefore(1)
.AddTable()
.AddRow()
.AddCell().AddParagraph("Nombre")
.AddCell().AddParagraph("Edad")
.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");
// Agregar ruta del archivo de entrada
options.AddInput(new FileDataSource("path_to_input.pdf"));
// Establecer ruta del archivo de salida
options.AddOutput(new FileDataSource("path_to_output.pdf"));
// Realizar el proceso
PdfManager.AddTable(options);
Ejemplo de Uso:
El ejemplo demuestra cómo agregar una tabla de contenido a un archivo PDF.
// Crear objeto TocOptions para establecer instrucciones
var options = new TocOptions();
// Establecer el Título
options.Title = "Mi Tabla de Contenidos";
// Diseñar Encabezados
options.Headings.Add(new TocHeading("Introducción", 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));
// Agregar ruta del archivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Establecer ruta del archivo de salida
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Realizar el proceso
PdfManager.AddTableOfContents(options);
Ejemplo de Uso:
El ejemplo demuestra cómo agregar una tabla de contenido a un archivo PDF con generación de marcadores.
// Crear objeto TocOptions para establecer instrucciones
var options = new TocOptions();
// Establecer el Título
options.Title = "Mi Tabla de Contenidos";
// Generar enlaces en marcadores
options.GenerateBookmarks = true;
// Diseñar Encabezados
options.Headings.Add(new TocHeading("Introducción", 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("Ejemplo A", 4, true, 2));
options.Headings.Add(new TocHeading("Ejemplo B", 4, true, 2));
options.Headings.Add(new TocHeading("Ejemplo C", 4, true, 2));
options.Headings.Add(new TocHeading("Ejemplo D", 4, true, 2));
options.Headings.Add(new TocHeading("Capítulo III", 5, true, 1));
// Agregar ruta del archivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Establecer ruta del archivo de salida
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Realizar el proceso
PdfManager.AddTableOfContents(options);
Ejemplo de Uso:
El ejemplo demuestra cómo agregar una tabla de contenido a un archivo PDF y guardarlo como un flujo.
// Crear objeto TocOptions para establecer instrucciones
var options = new TocOptions();
// Establecer el Título
options.Title = "Mi Tabla de Contenidos";
// Diseñar Encabezados
options.Headings.Add(new TocHeading("Introducción", 2, false, 1));
// Agregar ruta del archivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Establecer flujo de salida
var outputStream = new MemoryStream();
options.AddOutput(new StreamDataSource(outputStream));
options.CloseOutputStreams = false;
// Realizar el proceso
PdfManager.AddTableOfContents(options);
Mejora de la usabilidad de TableGenerator
- Class TableGenerator: es estático y no requiere el uso de un constructor.
- Class TableGenerator: marcada como Obsoleta. Usa PdfManager en su lugar.
Mejora de la usabilidad de PdfChatGpt
- Class PdfChatGpt: es estática y no requiere el uso de un constructor.
- Class PdfChatGptRequestOptions: se agregó la propiedad CancellationToken (Movida de PdfChatGpt).
Ejemplo de Uso:
El ejemplo demuestra cómo usar el plugin PdfChatGpt agregando mensajes a la solicitud.
var options = new PdfChatGptRequestOptions();
options.AddOutput(new FileDataSource("PdfChatGPT_output.pdf")); // Agrega la ruta del archivo de salida.
options.ApiKey = "Tu clave API."; // Necesitas proporcionar la clave para acceder a la API.
options.MaxTokens = 1000; // El número máximo de tokens a generar en la finalización del chat.
// para cancelar
// var cancelTokenSource = new CancellationTokenSource();
// var cToken = cancelTokenSource.Token;
// options.CancellationToken = cToken;
// Agregar los mensajes de solicitud.
options.Messages.Add(new Message
{
Content = "Eres un asistente útil.",
Role = Role.System
});
options.Messages.Add(new Message
{
Content = "¿Cuál es el diámetro de pizza más grande jamás hecho?",
Role = Role.User
});
// Procesar la solicitud.
await PdfChatGpt.ProcessAsync(options);
Errores corregidos
- Corregida la conversión de html a pdf metadata
- Corregidos problemas de formato de texto y escalado de imágenes en PDF a PDF/A_3b
- Corregido el error de informe en la impresión del PDF a PDFA resultante
- Corregida la imagen resultante en PDF a HTML que contiene fondo
- Corregidos caracteres chinos que aparecen como cajas en HTML a PDF
- Corregido el font custom Base64 no honrado en HTML a PDF
- Corregido el CSS de campo de formulario no se aplica en HTML a PDF
- Corregido el gráfico que no se renderiza correctamente en HTML a PDF
- Corregidos caracteres especiales que no se representan en HTML a PDF
v25.9
- Clase DocConverter: es estática y no requiere el uso de un constructor.
- Clase PdfToDocOptions: se agregó la propiedad “Modo” que permite personalizar el proceso de conversión.
- Enum DocConversionMode: permite personalizar el proceso de conversión de pdf-doc. Valores:
- TextBox: Este modo es rápido y bueno para preservar al máximo la apariencia original del archivo PDF, pero la editabilidad del documento resultante podría ser limitada. Cada bloque de texto agrupado visualmente en el archivo PDF original se convierte en un cuadro de texto en el documento resultante.
- Flow: Modo de reconocimiento completo, el motor realiza agrupaciones y análisis multinivel para restaurar la intención original del autor del documento y producir un documento maximalmente editable.
Ejemplo de uso:
// El ejemplo demuestra cómo convertir un documento PDF a formato Doc.
// Crear un objeto PdfToDocOptions para establecer instrucciones
var options = new PdfToDocOptions();
// Agregar ruta del archivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Establecer ruta del archivo de salida
options.AddOutput(new FileDataSource("path_to_result_file.doc"));
// Realizar el proceso
DocConverter.Process(options);
Ejemplo de uso:
// El ejemplo demuestra cómo convertir un documento PDF a formato Doc estableciendo Modo.
// Crear un objeto PdfToDocOptions para establecer instrucciones
var options = new PdfToDocOptions();
// Agregar ruta del archivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Establecer ruta del archivo de salida
options.AddOutput(new FileDataSource("path_to_result_file.doc"));
// Establecer Modo
options.Mode = DocConversionMode.Flow;
// Realizar el proceso
DocConverter.Process(options);
Mejora de la usabilidad de PdfAConverter
Clase PdfAConverter: es estática y no requiere el uso de un constructor.
Ejemplo de uso:
// El ejemplo demuestra cómo convertir el documento PDF a formato PDF/A (PDF/A-3b en este caso):
// Crear la clase de opciones para configurar el proceso de conversión
var options = new PdfAConvertOptions
{
PdfAVersion = PdfAStandardVersion.PDF_A_3B
};
// Agregar el archivo fuente
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf")); // reemplace con la ruta de su archivo real
// Agregar la ruta para guardar el archivo convertido
options.AddOutput(new FileDataSource("path_to_the_converted_file.pdf"));
// Ejecutar la conversión
PdfAConverter.Process(options);
Ejemplo de uso:
// El ejemplo demuestra cómo validar la conformidad del documento PDF al formato PDF/A (PDF/A-1a en este caso):
// Crear la clase de opciones para configurar el proceso de validación
var options = new PdfAValidateOptions
{
PdfAVersion = PdfAStandardVersion.PDF_A_1A
};
// Agregar uno o más archivos para validar
options.AddInput(new FileDataSource("path_to_your_first_pdf_file.pdf")); // reemplace con la ruta de su archivo real
options.AddInput(new FileDataSource("path_to_your_second_pdf_file.pdf"));
// agregar más archivos según sea necesario
// Ejecutar la validación y obtener resultados
var resultContainer = PdfAConverter.Process(options);
// Verifique la propiedad resultContainer.ResultCollection para los resultados de la validación de cada archivo:
for (var i = 0; i < resultContainer.ResultCollection.Count; i++)
{
var result = resultContainer.ResultCollection[i];
var validationResult = (PdfAValidationResult) result.Data;
var isValid = validationResult.IsValid; // Resultado de validación para el documento i-ésimo
}
Mejora de la usabilidad de Timestamp
Clase Timestamp: es estática y no requiere el uso de un constructor.
Ejemplo de uso:
// El ejemplo demuestra cómo agregar un Timestamp al documento.
// Crear un objeto AddTimestampOptions para establecer instrucciones
var options = new AddTimestampOptions("path_to_your_pfx_file.pfx", "password_for_your_pfx_file", "timestamp_server_url");
// Agregar ruta del archivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Establecer ruta del archivo de salida
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Realizar el proceso
Timestamp.Process(options);
Documentación actualizada
Ejemplos actualizados, se agregaron ejemplos adicionales:
- Información sobre licencia y evaluación
- Páginas de productos
- Generador de tablas PDF
- Generador de TOC PDF
- Agregador de timestamps PDF
- Convertidor PDF/A
- Extractor de imágenes PDF
- Extractor de texto PDF
- Convertidor de PDF a XLS
- Convertidor de PDF a HTML
Errores corregidos
- Se corrigieron problemas con HTML a PDF
- Se corrigieron problemas con PDF a PDF/A-2B
- Mejora en PDF a JPEG: algunos caracteres de texto generados como cuadrados
- Se corrigió la renderización de PDF a TIFF
- Se corrigieron excepciones inesperadas de PDF a JPEG
v25.8
Mejora de la usabilidad de JpegConverter
Class JpegConverter: es estático y no requiere el uso de un constructor.
Ejemplo de uso:
// El ejemplo demuestra cómo convertir un documento PDF a formato JPEG.
// Crear un objeto PdfToJpegOptions para establecer las instrucciones
var options = new PdfToJpegOptions();
// Agregar la ruta del archivo de entrada
options.AddInput(new FileDataSource("ruta_al_archivo_de_entrada.pdf"));
// Establecer la ruta del directorio de salida
options.AddOutput(new DirectoryDataSource("ruta_al_directorio_de_salida"));
// Realizar el proceso
JpegConverter.Process(options);
Mejora de la usabilidad de PngConverter
Class PngConverter: es estático y no requiere el uso de un constructor.
Ejemplo de uso:
// El ejemplo demuestra cómo convertir un documento PDF a formato PNG.
// Crear un objeto PdfToPngOptions para establecer las instrucciones
var options = new PdfToPngOptions();
// Agregar la ruta del archivo de entrada
options.AddInput(new FileDataSource("ruta_al_archivo_de_entrada.pdf"));
// Establecer la ruta del directorio de salida
options.AddOutput(new DirectoryDataSource("ruta_al_directorio_de_salida"));
// Realizar el proceso
PngConverter.Process(options);
Mejora de la usabilidad de XlsConverter
- Class XlsConverter: es estático y no requiere el uso de un constructor.
- Class XlsConverter: descripción corregida.
Ejemplo de uso:
// El ejemplo demuestra cómo convertir un PDF a un documento XLSX.
// Crear un objeto PdfToXlsOptions para establecer las instrucciones
var options = new PdfToXlsOptions();
// Agregar la ruta del archivo de entrada
options.AddInput(new FileDataSource("ruta_a_tu_archivo_pdf.pdf"));
// Establecer la ruta del archivo de salida
options.AddOutput(new FileDataSource("ruta_al_archivo_resultante_xlsx.xlsx"));
// Realizar el proceso
XlsConverter.Process(options);
Mejora de la usabilidad de Signature
- Class Signature: es estático y no requiere el uso de un constructor.
- Class Signature: descripción corregida.
- Class Signature: interfaz IPlugin eliminada.
Ejemplo de uso:
// El ejemplo demuestra cómo firmar un documento PDF.
// Crear un objeto SignOptions para establecer las instrucciones
var options = new SignOptions("ruta_a_tu_archivo_pfx.pfx", "contraseña_de_tu_archivo_pfx");
// Agregar la ruta del archivo de entrada
options.AddInput(new FileDataSource("ruta_a_tu_archivo_pdf.pdf"));
// Establecer la ruta del archivo de salida
options.AddOutput(new FileDataSource("ruta_al_archivo_pdf_resultante.pdf"));
// Realizar el proceso
Signature.Process(options);
Constructores de PdfToHtmlOptions modificados
Constructores y argumentos optimizados.
Texto de la marca de evaluación cambiado.
Documentación actualizada
Ejemplos actualizados, se añadieron ejemplos adicionales:
- Conversor de PDF a JPEG
- Conversor de PDF a PNG
- Conversor de PDF a TIFF
- Aplanador de formularios PDF
- Conversor HTML
- Seguridad de PDF
- Optimizador de PDF
- Fusionador de PDF
- Divisor de PDF
Errores corregidos
- Arreglar problemas con Anotaciones
- Arreglar problemas tras el redimensionamiento
- Arreglar la transformación de nombres de fuentes de PDF a PDF/A
- Arreglar PDF a DOCX - Se agrega espacio en el encabezado y otros problemas
- Arreglar HTML a PDF - Fondo transparente PNG
- Arreglar PDF comprimido - Mejorar el trabajo con Adobe Acrobat