v26.8
La clase SignOptions ha sido rediseñada
- Ahora es más fácil de usar.
- Hereda de la clase OptionsWithInputAndOutput.
- Las propiedades Inputs y Outputs cambiaron a Input y Output. Ahora solo hay 1 entrada y 1 salida.
- Si la salida es un archivo, su flujo se cerrará automáticamente, pero si es un Stream, permanecerá abierto para uso posterior.
- Se eliminaron los métodos AddInput, AddOutput.
- Se añadieron varios constructores más convenientes:
SignOptions(IData inputData, IData outputData, IData pfxData, string password)SignOptions(string inputFile, string outputFile, string pfxFile, string pfxPassword)SignOptions(Stream inputStream, Stream outputStream, Stream pfxStream, string pfxPassword)
- Se añadieron propiedades modificables:
Stream Pfxstring PfxPasswordIData InputIData Output
Ejemplo de uso:
Ejemplo de trabajo con SignOptions.
using var pfxStream = File.OpenRead(@"path_to_your_pfx_file.pfx");
var options = new SignOptions(pfxStream, "password_of_your_pfx_file");
// Establecer rutas de archivo de entrada y salida
options.Input = new FileData("path_to_your_pdf_file.pdf");
options.Output = new FileData("path_to_result_pdf_file.pdf");Ejemplo de uso:
El ejemplo muestra cómo firmar un archivo PDF de la manera más breve posible.
PdfSecurity.Sign(new SignOptions("path_to_your_pdf_file.pdf", "path_to_result_pdf_file.pdf", "path_to_your_pfx_file.pfx", "password_of_your_pfx_file"));Ejemplo de uso:
El ejemplo muestra cómo firmar un documento PDF utilizando streams.
// Preparar streams
using var pdfStreamInput = File.OpenRead(@"path_to_your_pdf_file.pdf");
using var pfxStreamInput = File.OpenRead(@"path_to_your_pfx_file.pfx");
using var pdfStreamOutput = new MemoryStream();
// Crear objeto SignOptions para establecer instrucciones
var options = new SignOptions(pdfStreamInput, pdfStreamOutput, pfxStreamInput, "password_of_your_pfx_file");
// Ejecutar el proceso
PdfSecurity.Sign(options);Clase Signature eliminada
- La implementación anterior de plugins se está retirando gradualmente. La funcionalidad de esta clase ha sido reemplazada por la clase PdfSecurity.
- Class Signature: eliminada, use PdfSecurity.
Ejemplo de uso:
El ejemplo muestra cómo firmar un documento PDF.
// Crear objeto SignOptions para establecer instrucciones
var options = new SignOptions("path_to_your_pdf_file.pdf", "path_to_result_pdf_file.pdf", "path_to_your_pfx_file.pfx", "password_of_your_pfx_file");
// Ejecutar el proceso
PdfSecurity.Sign(options);Clase FormExporter eliminada
- La implementación anterior de plugins se está retirando gradualmente. La funcionalidad de esta clase ha sido reemplazada por las clases PdfExtractor y PdfForm.
- Class FormExporter: eliminada, use PdfExtractor o PdfForm.
Ejemplo de uso:
El ejemplo muestra cómo exportar valores de formulario a un archivo CSV con PdfExtractor.
// Crear objeto ExtractFormDataToDsvOptions para establecer instrucciones
var options = new ExtractFormDataToDsvOptions(',', true);
// Añadir ruta del archivo de entrada
options.AddInput(new FileData("path_to_your_pdf_file.pdf"));
// Establecer ruta del archivo de salida
options.AddOutput(new FileData("path_to_result_csv_file.csv"));
// Ejecutar el proceso
PdfExtractor.Extract(options);Ejemplo de uso:
El ejemplo muestra cómo exportar valores de formulario a un archivo TSV y establecer propiedades con PdfForm.
// Crear objeto ExtractFormDataToDsvOptions para establecer instrucciones
var options = new ExtractFormDataToDsvOptions();
// Establecer delimitador
options.Delimiter = '\t';
// Añadir nombres de campos al resultado
options.AddFieldName = true;
// Añadir ruta del archivo de entrada
options.AddInput(new FileData("path_to_your_pdf_file.pdf"));
// Establecer ruta del archivo de salida
options.AddOutput(new FileData("path_to_result_csv_file.tsv"));
// Ejecutar el proceso
PdfForm.Extract(options);Clase FileData mejorada
- Se sobrescribió el método
ToString().
Otras correcciones
📄 PDF a DOC
- Se corrigió la conversión de PDF a DOC que consumía tiempo excesivo.
🌐 PDF a HTML / HTML a PDF
- Se corrigió la conversión de PDF a HTML que producían imágenes transparentes.
- Se corrigió la conversión de HTML a PDF donde el contenido se superponía.
- Se corrigió la conversión de HTML a PDF donde se ignoraba el ancho de la tabla.
🖼️ PDF a PNG/TIFF
- Se corrigió la conversión de PDF a PNG que consumía memoria excesiva.
- Se corrigió la conversión de PDF a PNG que no preservaba fuentes incrustadas.
- Se corrigió la conversión de PDF a TIFF que lanzaba una excepción.
📑 PDF a PDF/A
- Se corrigió la conversión de PDF a PDF/A que perdía colores del documento.
- Se corrigió la conversión de PDF a PDF/A que superponía texto en la salida.
- Se corrigió el método
Validate()de PDF/A que devolvía resultados incorrectos. - Se corrigió la validación de PDF/A que producía resultados incorrectos.
📂 Otras operaciones
- Se corrigió la excepción
System.FormatExceptionlanzada al verificar una firma PDF. - Se corrigió la excepción al combinar documentos.