PDFium Component Docs

CommitIncrementalSave Metoda

Component: TPdf  ·  Unit: PDFium
Dopisuje edycje wykonane od ostatniego zatwierdzenia jako nową rewizję PDF

Syntax

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

StreamCel zapisu kompletnego dokumentu, łącznie z punktem bazowym i wszystkimi dopisanymi do tej pory rewizjami; nil zgłasza EPdfError
InfoTPdfIncrementalCommitInfo przyjmuje liczby obiektów i bajtów, poprzednie i nowe offsety xref, liczbę rewizji, stan szyfrowania i walidacji oraz wyniki trwałości pliku
ResultTrue, gdy kompletny zwalidowany wynik został zapisany

 

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

FileNamePlik docelowy, podmieniany atomowo przez trwały plik boczny w tym samym katalogu
InfoTen sam raport TPdfIncrementalCommitInfo co w wariancie strumieniowym, z Durable i ReplacedAtomically ustawianymi po pomyślnym przejściu odpowiednich etapów plikowych
ResultTrue, gdy zwalidowany plik boczny podmienił plik docelowy

Description

Porównuje żywy dokument ze stanem zapamiętanym przy ostatnim zatwierdzeniu, a przy pierwszym zatwierdzeniu z punktem bazowym, i dopisuje zmienione obiekty plus świeżą sekcję odwołań krzyżowych. Wcześniejsze bajty nie są nigdy przepisywane, więc każda poprzednia rewizja pozostaje identyczna bajt po bajcie i odzyskiwalna

AppendedByteCount to sam rozmiar nowej rewizji, podczas gdy PreviousOutputByteCount i OutputByteCount wyznaczają niezmienny prefiks oraz kompletny wynik. PreviousXrefOffset i OutputXrefOffset identyfikują łańcuch rewizji, a ChangedObjectCount raportuje, ile obiektów znalazł diff

Każdy kandydat przechodzi rzadkie sprawdzenia granic rewizji, ścisłe niezależne ponowne otwarcie, sprawdzenia liczby stron i procedury obsługi bezpieczeństwa oraz walidację PDF MAC, gdy ta występuje. Encrypted i Validated raportują te własności

Wariant plikowy pisze obok celu, trwale zrzuca plik boczny na nośnik, zamyka go i otwiera ponownie, powtarza walidację, a następnie żąda przepustowego atomowego podmienienia. Jakakolwiek porażka zapisu, ponownego otwarcia, walidacji albo podmiany pozostawia poprzedni cel nietknięty i przywraca punkt bazowy sesji oraz liczbę rewizji, aby tę samą edycję można było ponowić

Niepowodzenie przed podmianą pozostawia poprzedni cel nietknięty i przywraca punkt bazowy sesji oraz liczbę rewizji. Awaria zrzutu katalogu na Uniksie po udanym zmianie nazwy zgłasza EPdfOutputCommitError z wewnętrznego modułu FPdfPlatform: wyjście zostało już podmienione, Info.ReplacedAtomically=True i Info.Durable=False, a sesja zachowuje zatwierdzony punkt bazowy, więc późniejsza edycja nie może dopisać do nieaktualnego wyjścia

Durable raportuje pomyślne ukończenie żądanych przez platformę etapów zrzutu. Nie certyfikuje sprzętu pamięci ani zachowania systemu plików po utracie zasilania. Inne plikowe API zapisu używające tej samej atomowej podmiany mogą także zgłosić ten wyjątek zatwierdzonego wyjścia po podmianie; wywołujący muszą odróżnić ten etap od awarii, które zachowują poprzednie wyjście

Wywołanie bez otwartej sesji zgłasza EPdfError, więc najpierw musi paść BeginIncrementalSave

See Also

BeginIncrementalSave, EndIncrementalSave, IncrementalSaveActive, SaveAs