PDFium Delphi Component Docs

Incremental save session

Komponent: TPdf  ·  Enhed: PDFium
Tilføjer kun ændrede eller nye indirekte objekter, mens hver tidligere output-byte bevares

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;

AllowSignedDocumentExplicitly permits a session on a signed document; the default rejects it
StreamTStream that receives the complete accumulated PDF after this commit
FileNameOutput path replaced only after a sibling temporary file succeeds
InfoPer-commit statistics returned after the destination write succeeds

Commit Information

ChangedObjectCountNumber of changed or new indirect objects appended by this commit
AppendedByteCountBytes appended after the exact previous-output prefix
OutputByteCountTotal bytes in the complete output returned by this commit
RevisionCountNumber of non-empty revisions committed in the current session

Description

BeginIncrementalSave fanger et stabilt PDFium-semantisk snapshot som både sammenligningsbaseline og det første komplette output

Hver commit fanger den aktuelle tilstand, opløser aktive classic-, hybrid-, xref-stream- og object-stream-objekter og sammenligner derefter objektgeneration og nøjagtige body-bytes

Kun ændrede eller nye indirekte objekter skrives efter det foregående output, efterfulgt af den mindste krævede xref- og trailer-revision

En classic-xref-kilde fortsætter med klassiske xref-tabeller, mens en xref-stream-kilde fortsætter med selvindekserede xref-streams

Hvis intet ændredes, returneres det foregående output byte for byte, ingen revision tilføjes, og RevisionCount rykker ikke frem

Fil-overloadet skriver en søskende midlertidig fil, erstatter destinationen atomisk og gendanner sessiontilstand, hvis skrivning eller erstatning fejler

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