v25.10
Nuevo plugin Extractor de PDF
- 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