PDFium Delphi Component Docs

Incremental save session

Component: TPdf  ·  Unit: PDFium
Pripne le spremenjene ali nove posredne predmete in pri tem ohrani vsak prejšnji izhodni bajt

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;

AllowSignedDocumentIzrecno dovoli sejo na podpisanem dokumentu; privzeto ga zavrne
StreamTStream, ki po tem potrditvenem zapisu prejme popoln nakopičeni PDF
FileNameIzhodna pot, zamenjana šele, ko uspe sorojna začasna datoteka
InfoStatistika posamezne potrditve, vrnjena po uspešnem zapisu na cilj

Commit Information

ChangedObjectCountŠtevilo spremenjenih ali novih posrednih predmetov, pripetih s to potrditvijo
AppendedByteCountBajti, pripeti za točno predhodno izhodno predpono
OutputByteCountSkupno število bajtov v popolnem izhodu, vrnjenem s to potrditvijo
RevisionCountŠtevilo nepraznih revizij, potrjenih v trenutni seji

Description

BeginIncrementalSave zajame stabilen semantični posnetek PDFium kot izhodišče primerjave in kot prvi popolni izhod

Vsaka potrditev zajame trenutno stanje, razreši dejavne predmete klasičnega, hibridnega, xref-stream in object-stream tipa, nato primerja generacijo predmetov in točne bajte teles

Za prejšnjim izhodom se zapišejo le spremenjeni ali novi posredni predmeti, sledi pa najmanjša zahtevana revizija xref in trailer

Vir s klasičnim xref-om nadaljuje s klasičnimi tabelami xref, vir s xref-streamom pa s samoindeksiranimi toki xref

Če se nič ni spremenilo, se prejšnji izhod vrne bajt za bajtom, nobena revizija se ne pripne in RevisionCount se ne poveča

Overload za datoteko zapiše sorojno začasno datoteko, cilj zamenja atomarno in ob neuspešnem zapisu ali zamenjavi obnovi stanje seje

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