THotPDF.BeginIncrementalUpdate

THotPDF

 

Top  Methoden  Volgende

Laadt een bestaande PDF en zet het document in de alleen-toevoegen-modus voor incrementele updates.

 

Delphi-syntax:

procedure BeginIncrementalUpdate(const SourceFile: TFileName); overload;

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

 

C++-syntax:

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

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

 

Description

Roep BeginIncrementalUpdate aan wanneer een bestaande PDF moet worden uitgebreid zonder de oorspronkelijke bytes te herschrijven. HotPDF pars't de actieve trailer- of xref-streamwoordenlijst, vangt zijn permanente en wijzigings-ID's, houdt het bronbestand via een file-backed stream schrijfvergrendeld en bewaart alleen een begrensde staartinspectie in plaats van een volledige bronkopie

 

Nieuwe indirecte objecten en mutaties via de geladen-document-API's worden automatisch bijgehouden. Gebruik MarkDirty wanneer code een object wijzigt via een pad buiten de officiële mutatie-hooks

 

Voor een Standard-versleutelde bron geef je het gebruikers- of eigenaarswachtwoord door aan de overload met twee argumenten. Voor een met openbare sleutel versleutelde bron wijst je PubSecKeyMaterial toe en roep je de overload met één argument aan. HotPDF bewaart de geverifieerde bestandssleutel of FEK alleen voor de duur van de update, behoudt het oorspronkelijke beleid voor tekenreeksen, streams, metadata en Identity-cryptfilters, en leidt legacy per-object-sleutels af uit zowel het objectnummer als zijn bewaarde generatie

De versleutelingswoordenlijst wordt overgeërfd van de bronrevisie en kan niet worden geïntroduceerd, vervangen of herconfigureerd zolang de incrementele modus actief is. Niet-ondersteunde heterogene expliciete crypt-filter-herschrijvingen falen vóór de uitvoer in plaats van ciphertext onder een ander beleid uit te geven

 

Deze workflow is nuttig voor het toevoegen van een latere handtekeningveld, het toevoegen van metadata of het uitbreiden van een al ondertekend document terwijl de bytebereiken die door eerdere digitale handtekeningen worden gedekt behouden blijven. De actieve trailer wordt gebruikt, ook wanneer de bron al meerdere revisies bevat

 

Een tweede handtekening toevoegen

Na het laden van het document is er geen huidige pagina meer, dus je voegt het ondertekenbare veld toe met AddLoadedSignedSignatureField, dat de pagina-index meekrijgt. Het reserveert de handtekenruimte die SignPDFWithPFX, of PreparePDFForSigning en InsertSignatureHex voor een externe ondertekenaar, invullen nadat de update is opgeslagen. De nieuwe handtekening dekt het hele bestand en eerdere handtekeningen blijven geldig omdat hun bytes niet worden aangeraakt

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

 

Zie ook: MarkDirty, SaveIncrementalUpdate, AddLoadedSignedSignatureField, GetIncrementalUpdateSourceInfo, AcroForm-ondersteuning, PDF-filterondersteuning