v25.10
Nuevo complemento PDF Extractor
- Clase PdfExtractor: contiene todas las funciones de los complementos: TextExtractor, ImageExtractor, FormExporter.
- Clase TextExtractor: será eliminada pronto, utiliza PdfExtractor.
- Clase ImageExtractor: será eliminada pronto, utiliza PdfExtractor.
- Clase FormExporter: será eliminada pronto, utiliza PdfExtractor.
- Clase TextExtractorOptions: renombrada a Clase ExtractTextOptions.
- Clase ImageExtractorOptions: renombrada a Clase ExtractImagesOptions.
- Clase FormExportToDsvOptions: renombrada a Clase ExtractFormDataToDsvOptions.
Ejemplo de uso:
El ejemplo demuestra cómo extraer el contenido de texto de un documento PDF.
// Crear un objeto ExtractTextOptions para establecer instrucciones
var options = new ExtractTextOptions();
// Añadir la 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 el contenido de texto de un documento PDF con TextFormattingMode.
// Crear un objeto ExtractTextOptions para establecer TextFormattingMode
var options = new ExtractTextOptions(TextFormattingMode.Pure);
// Añadir la 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();
// Añadir la 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 un objeto ExtractFormDataToDsvOptions para establecer instrucciones
var options = new ExtractFormDataToDsvOptions(',', true);
// Añadir la ruta del archivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Establecer la ruta del archivo de salida
options.AddOutput(new FileDataSource("path_to_result_csv_file.csv"));
// Realizar el proceso
PdfExtractor.ExtractFormData(options);
Nuevo complemento PDF Manager
- Clase PdfManager: contiene todas las funciones de los complementos: Merger, Optimizer, Splitter, TableGenerator, TocGenerator.
- Clase Merger: será eliminada pronto.
- Clase Optimizer: será eliminada pronto, utiliza PdfManager.
- Clase Splitter: será eliminada pronto, utiliza PdfManager.
- Clase TableGenerator: será eliminada pronto, utiliza PdfManager.
- Clase TocGenerator: será eliminada pronto, utiliza PdfManager.
Ejemplo de uso:
El ejemplo demuestra cómo fusionar dos documentos PDF.
// Crear un objeto MergeOptions para establecer instrucciones
var options = new MergeOptions();
// Añadir 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 la 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 un objeto SplitOptions para establecer instrucciones
var options = new SplitOptions();
// Añadir la ruta del archivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Establecer las rutas de los 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 un objeto OptimizeOptions para establecer instrucciones
var options = new OptimizeOptions();
// Añadir la ruta del archivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Establecer la 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 un objeto RotateOptions para establecer instrucciones
var options = new RotateOptions();
// Establecer nueva Rotación
options.Rotation = Rotation.On90;
// Añadir la ruta del archivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Establecer la 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 un objeto ResizeOptions para establecer instrucciones
var options = new ResizeOptions();
// Establecer nuevo PageSize
options.PageSize = PageSize.A3;
// Añadir la ruta del archivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Establecer la 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 un objeto CompressOptions para establecer instrucciones
var options = new CompressOptions();
// Añadir la ruta del archivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Establecer la 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 añadir 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");
// Añadir la ruta del archivo de entrada
options.AddInput(new FileDataSource("path_to_input.pdf"));
// Establecer la 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 añadir una tabla de contenido a un archivo PDF.
// Crear un 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));
// Añadir la ruta del archivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Establecer la 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 añadir una tabla de contenido a un archivo PDF con generación de marcadores.
// Crear un objeto TocOptions para establecer instrucciones
var options = new TocOptions();
// Establecer el Título
options.Title = "Mi Tabla de Contenidos";
// Generar enlaces en los 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));
// Añadir la ruta del archivo de entrada
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Establecer la 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 añadir una tabla de contenido a un archivo PDF y guardarlo como flujo.
// Crear un 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));
// Añadir la 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
- Clase TableGenerator: es estática y no requiere el uso de un constructor.
- Clase TableGenerator: marcada como Obsoleta. Utilizar PdfManager en su lugar.
Mejora de la usabilidad de PdfChatGpt
- Clase PdfChatGpt: es estática y no requiere el uso de un constructor.
- Clase PdfChatGptRequestOptions: propiedad CancellationToken añadida (Movida de PdfChatGpt).
Ejemplo de uso:
El ejemplo demuestra cómo utilizar el complemento PdfChatGpt añadiendo mensajes a la solicitud.
var options = new PdfChatGptRequestOptions();
options.AddOutput(new FileDataSource("PdfChatGPT_output.pdf")); // Añadir la ruta del archivo de salida.
options.ApiKey = "Tu clave API."; // Debes 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;
// Añadir 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 que se ha hecho?",
Role = Role.User
});
// Procesar la solicitud.
var result = 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 PDF a PDFA: el informe resultante de PDFA da error al imprimir
- Corregido PDF a HTML: la imagen resultante contiene fondo
- Corregido HTML a PDF: algunos caracteres chinos aparecen como recuadro
- Corregido HTML a PDF: la fuente personalizada base64 no se respeta
- Corregido HTML a PDF: el css del campo de formulario no se aplica
- Corregido HTML a PDF: el gráfico no se renderiza correctamente
- Corregido HTML a PDF: los caracteres especiales no se renderizan