THotPDF.SaveIncrementalUpdate

THotPDF

 

Poprzedni  Metody  THotPDF

Zapisuje rzadką rewizję przyrostową, zachowując każdy oryginalny bajt źródła

 

Delphi syntax:

procedure SaveIncrementalUpdate(const TargetFile: TFileName);

 

C++ syntax:

void __fastcall SaveIncrementalUpdate(System::Sysutils::TFileName TargetFile);

 

procedure SaveIncrementalUpdate(const TargetFile: TFileName); overload;

Ograniczone przeciążenie

procedure SaveIncrementalUpdate(const TargetFile: TFileName;
  MaxOutputBytes: Int64; Checkpoint: TNotifyEvent); overload;

Dodatnie MaxOutputBytes wymaga BeginIncrementalUpdate i ogranicza pełny oryginalny prefiks plus doklejaną deltę; ujemne limity są niepoprawne, a zero zachowuje legacy zachowanie bez ograniczeń

Przeciążenie z dodatnim limitem spooluje deltę do magazynu tymczasowego i podnosi EHPDFIncrementalOutputBudget przed publikacją, gdy serializacja przekroczy limit, zachowując istniejący cel na tej ścieżce błędu

Checkpoint otrzymuje dokument podczas przechodzenia obiektów i kopii publikacji oraz wewnętrzny spool podczas zapisów; nie zależ od konkretnego typu Sendera

Ten niskopoziomowy zapis nie jest atomowym API podmiany dla odrębnego celu; anulowanie albo błąd I/O podczas publikacji może zostawić plik częściowy, więc do atomowej publikacji zewnętrznej użyj prywatnego kandydata albo walidowanego zadania przyrostowego podpisywania

Description

SaveIncrementalUpdate domyka workflow rozpoczęty przez BeginIncrementalUpdate. Odwiedzane i emitowane są tylko obiekty zmienione, nowe i usunięte, razem z rzadkimi podsekcjami xref i trailerem, którego /Prev wskazuje poprzednią rewizję

Dla innego celu, oryginalny prefiks jest kopiowany sekwencyjnie z źródła opartego na pliku, zanim doklejony zostanie ukończony delta. Dla tego samego celu HotPDF waliduje tożsamość, długość i czas zapisu źródła, zwalnia leniwe uchwyty źródła, dokleja wprost, flushuje plik i w razie awarii doklejenia skraca z powrotem do oryginalnej długości. Obie ścieżki zachowują istniejące zakresy bajtów i wcześniejsze podpisy

 

Gdy żaden obiekt nie jest brudny ani usunięty, cel jest bajt w bajt identyczny ze źródłem i nie jest doklejana żadna sekcja xref, trailer, znak nowego wiersza ani marker EOF. Gdy rewizja jest wymagana, pierwszy ID trailera pozostaje stabilny, a obracany jest tylko drugi ID modyfikacyjny

Dla zaszyfrowanego źródła doklejony trailer powtarza oryginalny obiekt /Encrypt i referencję generacji dokładnie. Przepisane ciągi i strumienie pozostają chronione przez handler bezpieczeństwa źródła, a powstały dokument wciąż akceptuje oryginalne hasła użytkownika i właściciela Standard albo dane uwierzytelniające odbiorców klucza publicznego

Udane dołączenie do tego samego celu zużywa przechowywane źródło, ponieważ oryginalna rewizja została zmieniona w miejscu. Wywołaj ponownie BeginIncrementalUpdate, zanim utworzysz kolejną rewizję. GetIncrementalUpdateSourceInfo udostępnia zachowane bajty, bajty próbne (probe), liczniki kopiowań i dołączeń, śledzone zmiany, odwiedzone obiekty, wpisy xref, blokowanie i stan zużycia

Destrukcyjne edycje automatycznie przebudowują kompletny aktywny łańcuch obiektów wolnych. Istniejące generacje wolne są zachowywane, nowo uwolnione generacje postępują do 65535, przepisane obiekty zachowują swoje oryginalne generacje, a każdy emitowany wpis jest uporządkowany po numerze obiektu. GetLastIncrementalXRefRebuildInfo zwraca po zapisie liczniki źródła, przejścia, nasycenia i przebudowanego łańcucha

Wołaj tę metodę przed przygotowaniem albo wstawieniem nowego podpisu, gdy dokładasz późniejszą rewizję podpisu. Po powstaniu doklejonego pliku użyj normalnych helperów podpisywania, by zarezerwować i wypełnić nową wartość podpisu

Dla dokumentów z certyfikacją albo prawami użycia SaveIncrementalUpdateAuthenticated zapisuje kandydata w tym samym katalogu, uwierzytelnia każdy podpis niosący politykę, egzekwuje każdą późniejszą rewizję i atomowo podmienia cel dopiero po zaakceptowaniu aktualizacji przez wszystkie polityki

 

Zobacz też: BeginIncrementalUpdate, MarkDirty, SaveIncrementalUpdateAuthenticated, GetIncrementalUpdateSourceInfo, GetLastIncrementalXRefRebuildInfo, AcroForm Support, PDF Filter Support