PDFium Delphi Component Docs

CommitIncrementalSave Yöntem

Component: TPdf  ·  Unit: PDFium
Son commit'ten bu yana yapılan düzenlemeleri yeni bir PDF düzeltmesi olarak ekler

Syntax

function CommitIncrementalSave(Stream: TStream; out Info: TPdfIncrementalCommitInfo): Boolean;

StreamTemel belgeyi ve şimdiye kadar eklenmiş her düzeltmeyi içeren eksiksiz belge için hedef; nil değeri EPdfError fırlatır
InfoTPdfIncrementalCommitInfo; nesne ve bayt sayılarını, önceki ve yeni xref konumlarını, düzeltme sayısını, şifreleme ve doğrulama durumunu ile dosya kalıcılığı sonuçlarını alır
ResultDoğrulanmış eksiksiz çıktı yazıldığında True

 

function CommitIncrementalSave(const FileName: string; out Info: TPdfIncrementalCommitInfo): Boolean;

FileNameHedef dosya; aynı dizindeki kalıcı bir yardımcı dosya üzerinden atomik olarak değiştirilir
InfoAkış aşırı yüklemesiyle aynı TPdfIncrementalCommitInfo raporu; Durable ve ReplacedAtomically, ilgili dosya aşamaları başarılı olduktan sonra ayarlanır
ResultDoğrulanmış yardımcı dosya hedefi değiştirdiğinde True

Description

Canlı belgeyi son commit'te yakalanan durumla, ilk commit ise temel durumla karşılaştırarak diff'ler ve değişen nesneleri taze bir çapraz başvuru bölümüyle birlikte ekler. Daha önceki baytlar asla yeniden yazılmaz; böylece her önceki düzeltme bayt düzeyinde aynı ve kurtarılabilir kalır

AppendedByteCount yalnızca yeni düzeltmenin boyutudur; PreviousOutputByteCount ve OutputByteCount ise değişmez öneki ile eksiksiz sonucu sınırlar. PreviousXrefOffset ve OutputXrefOffset düzeltme zincirini tanımlar, ChangedObjectCount ise diff'in kaç nesne bulduğunu bildirir

Her aday, seyrek düzeltme sınırı denetimlerinden, katı bağımsız bir yeniden açmadan, sayfa sayısı ve güvenlik işleyicisi denetimlerinden ve varsa PDF MAC doğrulamasından geçer. Encrypted ve Validated bu özellikleri bildirir

Dosya aşırı yüklemesi hedefin yanına yazar, yardımcı dosyayı kalıcı olarak diske boşaltır, kapatıp yeniden açar, doğrulamayı yineler, ardından write-through atomik değiştirme ister. Herhangi bir yazma, yeniden açma, doğrulama ya da değiştirme hatasında önceki hedefe dokunulmaz ve oturumun temel durumu ile düzeltme sayısı geri yüklenir; böylece aynı düzenleme yeniden denenebilir

Değiştirmeden önceki bir hata, önceki hedefe dokunulmaz bırakır ve oturumun temel durumu ile düzeltme sayısını geri yükler. Başarılı bir yeniden adlandırmadan sonra bir Unix dizin boşaltma hatası, iç FPdfPlatform biriminden EPdfOutputCommitError fırlatır: çıktı çoktan değiştirilmiştir, Info.ReplacedAtomically=True ve Info.Durable=False olur ve oturum işlenmiş temel durumu korur; böylece sonraki bir düzenleme artık geçersiz çıktıya ekleme yapamaz

Durable, platformun istediği boşaltma aşamalarının başarıyla tamamlandığını raporlar. Depolama donanımını ya da bir dosya sisteminin güç kaybından sonraki davranışını belgelemez. Aynı atomik değiştirmeyi kullanan diğer dosya kaydetme API'leri de değiştirmeden sonra bu işlenmiş çıktı istisnasını fırlatabilir; çağıranlar bu aşamayı önceki çıktıyı koruyan hatalardan ayırt etmelidir

Açık bir oturum olmadan çağırmak EPdfError fırlatır; bu yüzden önce BeginIncrementalSave gelmelidir

See Also

BeginIncrementalSave, EndIncrementalSave, IncrementalSaveActive, SaveAs