THotPDF.BeginIncrementalUpdate

THotPDF

 

Top  Methods  Next

Carga un PDF existente y cambia el documento a modo de actualización incremental de solo adición.

 

Sintaxis Delphi:

procedure BeginIncrementalUpdate(const SourceFile: TFileName); overload;

procedure BeginIncrementalUpdate(const SourceFile: TFileName; const Password: AnsiString); overload;

 

Sintaxis C++:

void __fastcall BeginIncrementalUpdate(System::Sysutils::TFileName SourceFile);

void __fastcall BeginIncrementalUpdate(System::Sysutils::TFileName SourceFile, const System::AnsiString Password);

 

Descripción

Llame a BeginIncrementalUpdate cuando un PDF existente deba extenderse sin reescribir sus bytes originales. HotPDF analiza el trailer activo o el diccionario del xref-stream, captura sus IDs permanente y de modificación, mantiene el archivo fuente bloqueado para escritura mediante un stream respaldado por archivo y retiene solo una sonda acotada de cola en lugar de una copia completa del fuente

 

Los objetos indirectos nuevos y las mutaciones realizadas a través de las APIs de documentos cargados se rastrean automáticamente. Use MarkDirty cuando el código modifique un objeto por una ruta fuera de los ganchos oficiales de mutación

 

Para un fuente cifrado con Standard, pase su contraseña de usuario o de propietario a la sobrecarga de dos argumentos. Para un fuente cifrado por clave pública, asigne PubSecKeyMaterial y llame a la sobrecarga de un argumento. HotPDF retiene la clave de archivo autenticada o FEK solo durante la vida de la actualización, preserva las políticas originales de cadenas, streams, metadatos y filtros de cifrado Identity, y deduce las claves legadas por objeto tanto del número de objeto como de su generación retenida

El diccionario de cifrado se hereda de la revisión fuente y no puede introducirse, reemplazarse ni reconfigurarse mientras el modo incremental esté activo. Las reescrituras heterogéneas no soportadas de filtros de cifrado explícitos fallan antes de la salida en lugar de emitir texto cifrado bajo una política distinta

 

Este flujo es útil para añadir un campo de firma posterior, agregar metadatos o extender un documento ya firmado conservando los rangos de bytes cubiertos por las firmas digitales anteriores. Se usa el trailer activo incluso cuando el fuente ya contiene varias revisiones

 

Añadir una segunda firma

Tras cargar el documento no hay ninguna página actual, así que el campo firmable se añade con AddLoadedSignedSignatureField, que recibe el índice de página. Ese campo reserva el espacio de firma que rellenan SignPDFWithPFX, o PreparePDFForSigning y InsertSignatureHex con un firmante externo, una vez guardada la actualización. La nueva firma cubre el archivo completo y las firmas anteriores siguen siendo válidas porque sus bytes no se tocan

PDF := THotPDF.Create(nil);
try
  PDF.BeginIncrementalUpdate('Signed.pdf');
  PDF.AddLoadedSignedSignatureField(0, 300, 120, 500, 160, 'Approver', 8192);
  PDF.SaveIncrementalUpdate('Prepared.pdf');
finally
  PDF.Free;
end;
THotPDF.SignPDFWithPFX('Prepared.pdf', 'SignedTwice.pdf', 'Signer.pfx', 'password');

 

Véase también: MarkDirty, SaveIncrementalUpdate, AddLoadedSignedSignatureField, GetIncrementalUpdateSourceInfo, Soporte AcroForm, Soporte de filtros PDF