PDFium Delphi Component Docs

Incremental save -istunto

Komponentti: TPdf  ·  Yksikkö: PDFium
Lisää vain muuttuneet tai uudet epäsuorat objektit säilyttäen jokaisen aiemman ulostulotavun

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;

AllowSignedDocumentSallii istunnon allekirjoitetulla dokumentilla eksplisiittisesti; oletus hylkää sen
StreamTStream, joka vastaanottaa täydellisen kertyneen PDF:n tämän commitin jälkeen
FileNameUlostulopolku, joka korvataan vasta, kun rinnakkainen väliaikaistiedosto on onnistunut
InfoCommit-kohtaiset tilastot, jotka palautetaan, kun kohteen kirjoitus onnistuu

Commit Information

ChangedObjectCountTämän commitin lisäämien muuttuneiden tai uusien epäsuorien objektien määrä
AppendedByteCountTarkan aiemman ulostulon etuliitteen jälkeen lisätyt tavut
OutputByteCountTämän commitin palauttaman täydellisen ulostulon tavujen kokonaismäärä
RevisionCountNykyisessä istunnossa commitoitujen ei-tyhjien revisioiden määrä

Description

BeginIncrementalSave tallentaa vakaan PDFium-semanttisen vedoksen sekä vertailuperustaksi että ensimmäiseksi täydelliseksi ulostuloksi

Jokainen commit tallentaa nykyisen tilan, ratkaisee aktiiviset klassiset, hybridi-, xref-virta- ja objektivirtaobjektit ja vertaa sitten objektisukupolvea ja tarkkoja runkotavuja

Vain muuttuneet tai uudet epäsuorat objektit kirjoitetaan aiemman ulostulon jälkeen, jota seuraa pienin vaadittu xref- ja trailer-revisio

Klassisen xref:n lähde jatkuu klassisilla xref-taulukoilla, kun taas xref-virran lähde jatkuu itseindeksoiduilla xref-virroilla

Jos mikään ei muuttunut, aiempi ulostulo palautetaan tavu tavulta, revisiota ei lisätä eikä RevisionCount etene

Tiedostoylikuormitus kirjoittaa rinnakkaisen väliaikaistiedoston, korvaa kohteen atomisesti ja palauttaa istuntotilan, jos kirjoitus tai korvaus epäonnistuu

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