PDFium Delphi Component Docs

Συνεδρία σταδιακής αποθήκευσης

Στοιχείο: TPdf  ·  Μονάδα: PDFium
Προσαρτά μόνο αλλαγμένα ή νέα έμμεσα αντικείμενα διατηρώντας κάθε προηγούμενο byte εξόδου

Syntax

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Επιτρέπει ρητά συνεδρία σε υπογεγραμμένο έγγραφο· η προεπιλογή την απορρίπτει
StreamTStream που λαμβάνει το πλήρες συσσωρευμένο PDF μετά από αυτό το commit
FileNameΔιαδρομή εξόδου που αντικαθίσταται μόνο αφού επιτύχει αδελφό προσωρινό αρχείο
InfoΣτατιστικά ανά commit που επιστρέφονται μετά την επιτυχή εγγραφή προορισμού

Commit Information

ChangedObjectCountΠλήθος αλλαγμένων ή νέων έμμεσων αντικειμένων που προσαρτά αυτό το commit
AppendedByteCountByte που προσαρτώνται μετά το ακριβές πρόθεμα προηγούμενης εξόδου
OutputByteCountΣυνολικά byte στην πλήρη έξοδο που επιστρέφει αυτό το commit
RevisionCountΠλήθος μη κενών αναθεωρήσεων που δεσμεύτηκαν στην τρέχουσα συνεδρία

Description

Το BeginIncrementalSave καταγράφει σταθερό σημασιολογικό στιγμιότυπο PDFium ως βάση σύγκρισης και πρώτη πλήρη έξοδο

Κάθε commit καταγράφει την τρέχουσα κατάσταση, επιλύει ενεργά αντικείμενα classic, hybrid, xref-stream και object-stream, στη συνέχεια συγκρίνει γενεά αντικειμένου και ακριβή byte σώματος

Μόνο αλλαγμένα ή νέα έμμεσα αντικείμενα γράφονται μετά την προηγούμενη έξοδο, ακολουθούμενα από τη μικρότερη απαιτούμενη αναθεώρηση xref και trailer

Μια πηγή classic-xref συνεχίζει με κλασικούς πίνακες xref, ενώ μια πηγή xref-stream συνεχίζει με αυτοευρετηριασμένες ροές xref

Αν τίποτα δεν άλλαξε, η προηγούμενη έξοδος επιστρέφεται byte προς byte, δεν προσαρτάται αναθεώρηση και το RevisionCount δεν προχωρά

Η υπερφόρτωση αρχείου γράφει αδελφό προσωρινό αρχείο, αντικαθιστά τον προορισμό ατομικά και αποκαθιστά την κατάσταση συνεδρίας αν αποτύχει η εγγραφή ή η αντικατάσταση

Constraints

Example

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;

See Also

SaveAs, SaveAsObjectStream