function CommitIncrementalSave(Stream: TStream; out Info: TPdfIncrementalCommitInfo): Boolean;
| Stream | Mål för det kompletta dokumentet, inklusive baslinjen och varje revision som hittills lagts till; nil utlöser EPdfError |
| Info | TPdfIncrementalCommitInfo tar emot objekt- och byteräknare, tidigare och nya xref-offset, revisionsantal, krypterings- och valideringstillstånd samt resultat för filhållbarhet |
| Result | True när den kompletta validerade utdaten skrevs |
function CommitIncrementalSave(const FileName: string; out Info: TPdfIncrementalCommitInfo): Boolean;
| FileName | Målfil, som ersätts atomärt via en beständig sidofil i samma katalog |
| Info | Samma TPdfIncrementalCommitInfo-rapport som strömoverloaden, med Durable och ReplacedAtomically satta efter att de där filstegen har lyckats |
| Result | True när den validerade sidofilen ersatte målet |
Diffar det levande dokumentet mot tillståndet som fångades vid senaste commit, eller mot baslinjen för den första, och lägger till de ändrade objekten plus en färsk korsreferenssektion. Tidigare bytes skrivs aldrig om, så varje tidigare revision förblir byte-identisk och återställningsbar
AppendedByteCount är storleken på enbart den nya revisionen, medan PreviousOutputByteCount och OutputByteCount avgränsar det oföränderliga prefixet och det kompletta resultatet. PreviousXrefOffset och OutputXrefOffset identifierar revisionskedjan, och ChangedObjectCount rapporterar hur många objekt diffen hittade
Varje kandidat passerar sparsamma kontroller av revisionsgränser, en strikt oberoende återinläsning, kontroller av sidantal och säkerhetshanterare samt PDF MAC-validering när den finns. Encrypted och Validated rapporterar de här egenskaperna
Filoverloaden skriver bredvid målet, spolar sidofilen, stänger och öppnar den igen, upprepar valideringen och genomför därefter en atomär ersättning. Windows begär write-through-ersättning; Unix verifierar stöd för katalogspolning före ersättningen och spolar överkatalogen efter namnändringen
Ett fel före ersättningen lämnar det tidigare målet orört och återställer sessionens baslinje och revisionsantal. Ett fel vid katalogspolning på Unix efter en lyckad namnändring utlöser EPdfOutputCommitError från den interna enheten FPdfPlatform: utdaten har redan ersatts, Info.ReplacedAtomically=True och Info.Durable=False, och sessionen behåller den committade baslinjen så att en senare redigering inte kan lägga till mot föråldrad utdata
Durable rapporterar att plattformens begärda spolningssteg slutfördes. Det intygar inte lagringshårdvaran eller ett filsystems beteende efter strömavbrott. Andra filsparnings-API:er som använder samma atomära ersättning kan också utlösa detta undantag för committad utdata efter ersättningen; anropare måste skilja det steget från fel som bevarar den tidigare utdaten
Ett anrop utan öppen session utlöser EPdfError, så BeginIncrementalSave måste komma först