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 | Kifejezetten engedélyezi a munkamenetet egy aláírt dokumentumon; az alapértelmezett elutasítja |
| Stream | TStream, amely a teljes felhalmozott PDF-et fogadja e commit után |
| FileName | Kimeneti elérési út, amely csak akkor cserélődik, ha egy testvér ideiglenes fájl sikeres |
| Info | Commitonkénti statisztika, amely a célírás sikere után kerül visszaadásra |
| ChangedObjectCount | A commit által hozzáfűzött megváltozott vagy új indirekt objektumok száma |
| AppendedByteCount | A pontos előző kimeneti előtag után hozzáfűzött bájtok |
| OutputByteCount | A commit által visszaadott teljes kimenet bájtjainak száma |
| RevisionCount | Az aktuális munkamenetben commitolt nem üres revíziók száma |
A BeginIncrementalSave egy stabil PDFium szemantikus pillanatképet rögzít mind az összehasonlítási alapként, mind az első teljes kimenetként
Minden commit rögzíti az aktuális állapotot, feloldja az aktív klasszikus, hibrid, xref-folyam és objektumfolyam objektumokat, majd összehasonlítja az objektumgenerációt és a pontos törzsbájtokat
Csak a megváltozott vagy új indirekt objektumok kerülnek kiírásra az előző kimenet után, a legkisebb szükséges xref és trailer revízióval zárva
Egy klasszikus xref forrás klasszikus xref-táblákkal folytatódik, míg egy xref-folyam forrás önindexelő xref-folyamokkal folytatódik
Ha semmi sem változott, az előző kimenet bájtra pontosan visszakerül, revízió nem kerül hozzáfűzésre, és a RevisionCount nem lép előre
A fájl-túlterhelés egy testvér ideiglenes fájlt ír, atomikusan cseréli a célt, és visszaállítja a munkamenet-állapotot, ha az írás vagy a csere meghiúsul
AllowSignedDocument nem True; az explicit engedély nem validálja a DocMDP vagy FieldMDP házirendetEPdfError kivételt dobCompressed tulajdonságtól, így az objektumösszehasonlítás stabil marad
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;