function CommitIncrementalSave(Stream: TStream; out Info: TPdfIncrementalCommitInfo): Boolean;
| Stream | Cel zapisu kompletnego dokumentu, łącznie z punktem bazowym i wszystkimi dopisanymi do tej pory rewizjami; nil zgłasza EPdfError |
| Info | TPdfIncrementalCommitInfo przyjmuje liczby obiektów i bajtów, poprzednie i nowe offsety xref, liczbę rewizji, stan szyfrowania i walidacji oraz wyniki trwałości pliku |
| Result | True, gdy kompletny zwalidowany wynik został zapisany |
function CommitIncrementalSave(const FileName: string; out Info: TPdfIncrementalCommitInfo): Boolean;
| FileName | Plik docelowy, podmieniany atomowo przez trwały plik boczny w tym samym katalogu |
| Info | Ten sam raport TPdfIncrementalCommitInfo co w wariancie strumieniowym, z Durable i ReplacedAtomically ustawianymi po pomyślnym przejściu odpowiednich etapów plikowych |
| Result | True, gdy zwalidowany plik boczny podmienił plik docelowy |
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