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 | Explicitly permits a session on a signed document; the default rejects it |
| Stream | TStream that receives the complete accumulated PDF after this commit |
| FileName | Output path replaced only after a sibling temporary file succeeds |
| Info | Per-commit statistics returned after the destination write succeeds |
| ChangedObjectCount | Number of changed or new indirect objects appended by this commit |
| AppendedByteCount | Bytes appended after the exact previous-output prefix |
| OutputByteCount | Total bytes in the complete output returned by this commit |
| RevisionCount | Number of non-empty revisions committed in the current session |
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
AllowSignedDocument is True; explicit permission does not validate DocMDP or FieldMDP policyEPdfErrorCompressed property so object comparison remains stable
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;