PDFium Delphi Component Docs

Sesija inkrementalnog čuvanja

Component: TPdf  ·  Unit: PDFium
Dopisuje samo promenjene ili nove indirektne objekte uz očuvanje svakog prethodnog izlaznog bajta

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;

AllowSignedDocumentIzričito dozvoljava sesiju na potpisanom dokumentu; podrazumevana vrednost je odbija
StreamTStream koji prima kompletan akumulirani PDF nakon ovog potvrđivanja
FileNameIzlazna putanja koja se zamenjuje tek nakon uspeha privremene datoteke u istom direktorijumu
InfoStatistika po potvrđivanju, vraćena nakon uspešnog upisa na odredište

Commit Information

ChangedObjectCountBroj promenjenih ili novih indirektnih objekata dopisanih ovim potvrđivanjem
AppendedByteCountBajtovi dopisani nakon egzaktnog prefiksa prethodnog izlaza
OutputByteCountUkupan broj bajtova u kompletnom izlazu koji vraća ovo potvrđivanje
RevisionCountBroj nepraznih revizija potvrđenih u trenutnoj sesiji

Description

BeginIncrementalSave snima stabilan semantički snimak PDFium-a koji služi i kao osnova za poređenje i kao prvi kompletan izlaz

Svako potvrđivanje snima trenutno stanje, razrešava aktivne klasične, hibridne, xref-stream i object-stream objekte, a zatim poredi generaciju objekata i egzaktne bajtove tela

Nakon prethodnog izlaza upisuju se samo promenjeni ili novi indirektni objekti, praćeni najmanjom potrebnom xref i trailer revizijom

Izvor sa klasičnim xref nastavlja sa klasičnim xref tabelama, dok izvor sa xref-stream nastavlja sa xref tokovima sa ugrađenim indeksom

Ako se ništa nije promenilo, prethodni izlaz se vraća bajt po bajt, nijedna revizija se ne dopisuje, a RevisionCount se ne povećava

Overload za datoteku upisuje privremenu datoteku u istom direktorijumu, atomično zamenjuje odredište i vraća stanje sesije ako upis ili zamena ne uspe

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