PDFium Delphi Component Docs

Artımlı kaydetme oturumu

Component: TPdf  ·  Unit: PDFium
Önceki her çıktı baytını korurken yalnızca değişen veya yeni dolaylı nesneleri ekler

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;

AllowSignedDocumentİmzalı bir belgede oturumu açıkça izin verir; varsayılan reddeder
StreamBu işlemeden sonra birikmiş eksiksiz PDF'i alan TStream
FileNameYalnızca kardeş bir geçici dosya başarılı olduktan sonra değiştirilen çıktı yolu
InfoHedefe yazma başarılı olduktan sonra döndürülen işlem başına istatistikler

Commit Information

ChangedObjectCountBu işlem tarafından eklenen değişen veya yeni dolaylı nesne sayısı
AppendedByteCountÖnceki çıktı önekinden sonra eklenen bayt sayısı
OutputByteCountBu işlemin döndürdüğü eksiksiz çıktıdaki toplam bayt sayısı
RevisionCountGeçerli oturumda işlenen boş olmayan sürüm sayısı

Description

BeginIncrementalSave, kararlı bir PDFium semantik anlık görüntüsünü hem karşılaştırma taban çizgisi hem de ilk eksiksiz çıktı olarak yakalar

Her işlem geçerli durumu yakalar, etkin klasik, hibrit, xref-stream ve object-stream nesnelerini çözer, ardından nesne üretimini ve gövde baytlarını tam olarak karşılaştırır

Yalnızca değişen veya yeni dolaylı nesneler önceki çıktıdan sonra yazılır ve ardından gereken en küçük xref ve trailer sürümü eklenir

Klasik xref kullanan bir kaynak klasik xref tablolarıyla devam ederken, xref-stream kullanan bir kaynak kendi kendine indekslenmiş xref akışlarıyla devam eder

Hiçbir şey değişmediyse önceki çıktı bayt bayt döndürülür, sürüm eklenmez ve RevisionCount ilerlemez

Dosya aşırı yüklemesi kardeş bir geçici dosya yazar, hedefi atomik olarak değiştirir ve yazma veya değiştirme başarısız olursa oturum durumunu geri yükler

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