function CommitIncrementalSave(Stream: TStream; out Info: TPdfIncrementalCommitInfo): Boolean;
| Stream | Bestemming voor het volledige document, inclusief de baseline en elke tot nu toe toegevoegde revisie; nil verhoogt EPdfError |
| Info | TPdfIncrementalCommitInfo ontvangt object- en byteaantallen, oude en nieuwe xref-offsets, het revisieaantal, versleutelings- en validatiestatus en resultaten van bestandsduurzaamheid |
| Result | True wanneer de volledige gevalideerde output is weggeschreven |
function CommitIncrementalSave(const FileName: string; out Info: TPdfIncrementalCommitInfo): Boolean;
| FileName | Doelbestand, atomair vervangen via een duurzaam sidebestand in dezelfde map |
| Info | Hetzelfde TPdfIncrementalCommitInfo-rapport als de stream-overload, met Durable en ReplacedAtomically gezet nadat die bestandsstadia slagen |
| Result | True wanneer het gevalideerde sidebestand de bestemming verving |
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