procedure BeginIncrementalSave(AllowSignedDocument: Boolean = False);
function CommitIncrementalSave(Stream: TStream; out Info: TPdfIncrementalCommitInfo): Boolean;
function CommitIncrementalSave(const FileName: string; out Info: TPdfIncrementalCommitInfo): Boolean;
procedure EndIncrementalSave;
property IncrementalSaveActive: Boolean;
| AllowSignedDocument | Επιτρέπει ρητά συνεδρία σε υπογεγραμμένο έγγραφο· η προεπιλογή την απορρίπτει |
| Stream | TStream που λαμβάνει το πλήρες συσσωρευμένο PDF μετά από αυτό το commit |
| FileName | Διαδρομή εξόδου που αντικαθίσταται μόνο αφού επιτύχει αδελφό προσωρινό αρχείο |
| Info | Στατιστικά ανά commit που επιστρέφονται μετά την επιτυχή εγγραφή προορισμού |
| ChangedObjectCount | Πλήθος αλλαγμένων ή νέων έμμεσων αντικειμένων που προσαρτά αυτό το commit |
| AppendedByteCount | Byte που προσαρτώνται μετά το ακριβές πρόθεμα προηγούμενης εξόδου |
| OutputByteCount | Συνολικά byte στην πλήρη έξοδο που επιστρέφει αυτό το commit |
| RevisionCount | Πλήθος μη κενών αναθεωρήσεων που δεσμεύτηκαν στην τρέχουσα συνεδρία |
Το BeginIncrementalSave καταγράφει σταθερό σημασιολογικό στιγμιότυπο PDFium ως βάση σύγκρισης και πρώτη πλήρη έξοδο
Κάθε commit καταγράφει την τρέχουσα κατάσταση, επιλύει ενεργά αντικείμενα classic, hybrid, xref-stream και object-stream, στη συνέχεια συγκρίνει γενεά αντικειμένου και ακριβή byte σώματος
Μόνο αλλαγμένα ή νέα έμμεσα αντικείμενα γράφονται μετά την προηγούμενη έξοδο, ακολουθούμενα από τη μικρότερη απαιτούμενη αναθεώρηση xref και trailer
Μια πηγή classic-xref συνεχίζει με κλασικούς πίνακες xref, ενώ μια πηγή xref-stream συνεχίζει με αυτοευρετηριασμένες ροές xref
Αν τίποτα δεν άλλαξε, η προηγούμενη έξοδος επιστρέφεται byte προς byte, δεν προσαρτάται αναθεώρηση και το RevisionCount δεν προχωρά
Η υπερφόρτωση αρχείου γράφει αδελφό προσωρινό αρχείο, αντικαθιστά τον προορισμό ατομικά και αποκαθιστά την κατάσταση συνεδρίας αν αποτύχει η εγγραφή ή η αντικατάσταση
AllowSignedDocument είναι True· η ρητή άδεια δεν επικυρώνει πολιτική DocMDP ή FieldMDPEPdfErrorCompressed ώστε η σύγκριση αντικειμένων να παραμένει σταθερή
var
Info: TPdfIncrementalCommitInfo;
begin
Pdf.BeginIncrementalSave;
try
Pdf.PageNumber := 1;
Pdf.PageRotation := ro90;
Pdf.CommitIncrementalSave('revision-1.pdf', Info);
Pdf.PageRotation := ro180;
Pdf.CommitIncrementalSave('revision-2.pdf', Info);
finally
Pdf.EndIncrementalSave;
end;
end;