PDFium Delphi Component Docs

Növekményes mentési munkamenet

Komponens: TPdf  ·  Egység: PDFium
Csak a megváltozott vagy új indirekt objektumokat fűzi hozzá, minden korábbi kimeneti bájtot megőrizve

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;

AllowSignedDocumentKifejezetten engedélyezi a munkamenetet egy aláírt dokumentumon; az alapértelmezett elutasítja
StreamTStream, amely a teljes felhalmozott PDF-et fogadja e commit után
FileNameKimeneti elérési út, amely csak akkor cserélődik, ha egy testvér ideiglenes fájl sikeres
InfoCommitonkénti statisztika, amely a célírás sikere után kerül visszaadásra

Commit-információk

ChangedObjectCountA commit által hozzáfűzött megváltozott vagy új indirekt objektumok száma
AppendedByteCountA pontos előző kimeneti előtag után hozzáfűzött bájtok
OutputByteCountA commit által visszaadott teljes kimenet bájtjainak száma
RevisionCountAz aktuális munkamenetben commitolt nem üres revíziók száma

Description

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

Megkötések

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