PDFium Component Docs

CommitIncrementalSave methode

Component: TPdf  ·  Unit: PDFium
Voeg de bewerkingen sinds de laatste commit toe als een nieuwe PDF-revisie

Syntax

function CommitIncrementalSave(Stream: TStream; out Info: TPdfIncrementalCommitInfo): Boolean;

StreamBestemming voor het volledige document, inclusief de baseline en elke tot nu toe toegevoegde revisie; nil verhoogt EPdfError
InfoTPdfIncrementalCommitInfo ontvangt object- en byteaantallen, oude en nieuwe xref-offsets, het revisieaantal, versleutelings- en validatiestatus en resultaten van bestandsduurzaamheid
ResultTrue wanneer de volledige gevalideerde output is weggeschreven

 

function CommitIncrementalSave(const FileName: string; out Info: TPdfIncrementalCommitInfo): Boolean;

FileNameDoelbestand, atomair vervangen via een duurzaam sidebestand in dezelfde map
InfoHetzelfde TPdfIncrementalCommitInfo-rapport als de stream-overload, met Durable en ReplacedAtomically gezet nadat die bestandsstadia slagen
ResultTrue wanneer het gevalideerde sidebestand de bestemming verving

Description

Vergelijkt het live document met de status die bij de laatste commit is vastgelegd, of met de baseline bij de eerste, en voegt de gewijzigde objecten plus een verse cross-reference-sectie toe. Eerdere bytes worden nooit herschreven, dus elke eerdere revisie blijft byte-identiek en herstelbaar

AppendedByteCount is alleen de grootte van de nieuwe revisie, terwijl PreviousOutputByteCount en OutputByteCount het onveranderlijke prefix en het volledige resultaat afbakenen. PreviousXrefOffset en OutputXrefOffset identificeren de revisieketen, en ChangedObjectCount rapporteert hoeveel objecten de diff vond

Elke kandidaat doorloopt sparse revisiegrenscontroles, een strikte onafhankelijke heropening, pagina-aantal- en securityhandler-controles en PDF MAC-validatie wanneer aanwezig. Encrypted en Validated rapporteren deze eigenschappen

De bestandsoverload schrijft naast het doel, flusht het sidebestand, sluit en heropent het, herhaalt de validatie en pleegt daarna een atomare vervanging. Windows vraagt write-through-vervanging aan; Unix verifieert ondersteuning voor directory-flush vóór de vervanging en flusht de bovenliggende directory na de rename

Een fout vóór de vervanging laat het eerdere doel onaangetast en herstelt de sessiebaseline en het revisieaantal. Een Unix directory-flush-fout na een geslaagde rename verhoogt EPdfOutputCommitError uit de interne unit FPdfPlatform: de uitvoer is al vervangen, Info.ReplacedAtomically=True en Info.Durable=False, en de sessie behoudt de gecommitte baseline zodat een latere bewerking niet aan verouderde uitvoer kan toevoegen

Durable meldt dat de gevraagde flushfasen van het platform met succes zijn voltooid. Het certificeert geen opslaghardware of gedrag van een bestandssysteem na stroomverlies. Andere file-save-API's die dezelfde atomare vervanging gebruiken kunnen deze committed-output-exceptie ook na de vervanging verhogen; aanroepers moeten die fase onderscheiden van fouten die de eerdere uitvoer behouden

Aanroepen zonder open sessie verhoogt EPdfError, dus BeginIncrementalSave moet eerst komen

See Also

BeginIncrementalSave, EndIncrementalSave, IncrementalSaveActive, SaveAs