PDFium Delphi Component Docs

CommitIncrementalSave-metod

Component: TPdf  ·  Unit: PDFium
Lägger till de redigeringar som gjorts sedan senaste commit som en ny PDF-revision

Syntax

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

StreamMål för det kompletta dokumentet, inklusive baslinjen och varje revision som hittills lagts till; nil utlöser EPdfError
InfoTPdfIncrementalCommitInfo tar emot objekt- och byteräknare, tidigare och nya xref-offset, revisionsantal, krypterings- och valideringstillstånd samt resultat för filhållbarhet
ResultTrue när den kompletta validerade utdaten skrevs

 

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

FileNameMålfil, som ersätts atomärt via en beständig sidofil i samma katalog
InfoSamma TPdfIncrementalCommitInfo-rapport som strömoverloaden, med Durable och ReplacedAtomically satta efter att de där filstegen har lyckats
ResultTrue när den validerade sidofilen ersatte målet

Description

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

See Also

BeginIncrementalSave, EndIncrementalSave, IncrementalSaveActive, SaveAs