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 Pfx
    • string PfxPassword
    • IData Input
    • IData 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.FormatException lanzada al verificar una firma PDF.
  • Se corrigió la excepción al combinar documentos.
 Español