PDFium Delphi Component Docs

Prieauginio įrašymo sesija

Komponentas: TPdf  ·  Modulis: PDFium
Prideda tik pakeistus ar naujus netiesioginius objektus, išsaugodamas kiekvieną ankstesnės išvesties baitą

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;

AllowSignedDocumentAiškiai leidžia sesiją pasirašytame dokumente; pagal numatymą ji atmetama
StreamTStream, priimantis visą sukauptą PDF po šio patvirtinimo
FileNameIšvesties kelias, pakeičiamas tik sėkmingai sukūrus gretimą laikinąjį failą
InfoKiekvieno patvirtinimo statistika, grąžinama sėkmingai įrašius paskirtį

Commit Information

ChangedObjectCountŠio patvirtinimo pridėtų pakeistų ar naujų netiesioginių objektų skaičius
AppendedByteCountBaitai, pridėti po tikslaus ankstesnės išvesties priešdėlio
OutputByteCountBendras baitų skaičius visame išvestyje, kurį grąžina šis patvirtinimas
RevisionCountNetuščių revizijų, patvirtintų dabartinėje sesijoje, skaičius

Description

BeginIncrementalSave užfiksuoja stabilų PDFium semantinį momentinį vaizdą ir kaip palyginimo bazinę liniją, ir kaip pirmąją pilną išvestį

Kiekvienas patvirtinimas užfiksuoja dabartinę būseną, išsprendžia aktyvius klasikinius, hibridinius, xref srauto ir objektų srauto objektus, tada lygina objektų generacijas ir tikslius turinio baitus

Po ankstesnės išvesties įrašomi tik pakeisti ar nauji netiesioginiai objektai, o po jų — mažiausia reikalinga xref ir trailer revizija

Klasikinio xref šaltinis tęsia su klasikinėmis xref lentelėmis, o xref srauto šaltinis — su savarankiškai indeksuotais xref srautais

Jei niekas nepasikeitė, ankstesnė išvestis grąžinama baitas į baitą, jokia revizija nepridedama, o RevisionCount nepasistumia

Failo perkrova įrašo gretimą laikinąjį failą, atomiškai pakeičia paskirtį ir atkuria sesijos būseną, jei įrašymas ar pakeitimas nepavyksta

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