function CommitIncrementalSave(Stream: TStream; out Info: TPdfIncrementalCommitInfo): Boolean;
| Stream | Temel belgeyi ve şimdiye kadar eklenmiş her düzeltmeyi içeren eksiksiz belge için hedef; nil değeri EPdfError fırlatır |
| Info | TPdfIncrementalCommitInfo; 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 |
| Result | Doğrulanmış eksiksiz çıktı yazıldığında True |
function CommitIncrementalSave(const FileName: string; out Info: TPdfIncrementalCommitInfo): Boolean;
| FileName | Hedef dosya; aynı dizindeki kalıcı bir yardımcı dosya üzerinden atomik olarak değiştirilir |
| Info | Akış aşırı yüklemesiyle aynı TPdfIncrementalCommitInfo raporu; Durable ve ReplacedAtomically, ilgili dosya aşamaları başarılı olduktan sonra ayarlanır |
| Result | Doğrulanmış yardımcı dosya hedefi değiştirdiğinde True |
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