THotPDF.BeginIncrementalUpdate

THotPDF

 

Top  Methods  Next

 

THotPDF.BeginIncrementalUpdate

THotPDF

 

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

 

Syntaxe C++ :

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

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

 

Description

Appelez BeginIncrementalUpdate lorsqu’un PDF existant doit être étendu sans réécrire ses octets d’origine. HotPDF analyse le trailer actif ou le dictionnaire de flux xref, capture ses IDs permanents et de modification, garde le fichier source verrouillé en écriture via un flux adossé au fichier, et ne retient qu’une sonde de queue bornée au lieu d’une copie complète de la source

 

Les nouveaux objets indirects et les mutations effectuées via les API de documents chargés sont suivis automatiquement. Utilisez MarkDirty lorsque le code modifie un objet par un chemin hors des hooks de mutation officiels

 

Pour une source chiffrée en Standard, transmettez son mot de passe utilisateur ou propriétaire à la surcharge à deux arguments. Pour une source chiffrée à clé publique, affectez PubSecKeyMaterial et appelez la surcharge à un argument. HotPDF ne retient la clé de fichier authentifiée ou FEK que pour la durée de la mise à jour, préserve les politiques d’origine des chaînes, flux, métadonnées et filtres de chiffrement Identity, et dérive les clés historiques par objet à partir du numéro d’objet et de sa génération retenue

Le dictionnaire de chiffrement est hérité de la révision source et ne peut être introduit, remplacé ni reconfiguré pendant que le mode incrémental est actif. Les réécritures hétérogènes de filtres de chiffrement explicites non prises en charge échouent avant la sortie au lieu d’émettre du chiffré sous une politique différente

 

Ce flux est utile pour ajouter un champ de signature ultérieur, ajouter des métadonnées, ou étendre un document déjà signé en préservant les plages d’octets couvertes par les signatures numériques antérieures. Le trailer actif est utilisé même lorsque la source contient déjà plusieurs révisions

 

Ajouter une seconde signature

Aucune page n’est courante une fois le document chargé ; le champ signable s’ajoute donc avec AddLoadedSignedSignatureField, qui prend l’index de page. Il réserve l’espace de signature que SignPDFWithPFX, ou PreparePDFForSigning et InsertSignatureHex pour un signataire externe, viennent remplir une fois la mise à jour enregistrée. La nouvelle signature couvre tout le fichier et les signatures antérieures restent valides car leurs octets ne sont pas touchés

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');

 

Voir aussi : MarkDirty, SaveIncrementalUpdate, AddLoadedSignedSignatureField, GetIncrementalUpdateSourceInfo, Prise en charge d’AcroForm, Prise en charge des filtres PDF