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 | اجرای نشست روی یک سند امضاشده را صریحاً مجاز میکند؛ حالت پیشفرض آن را رد میکند |
| Stream | TStream که PDF انباشتهٔ کامل را پس از این commit دریافت میکند |
| FileName | مسیر خروجی که تنها پس از موفقیت یک فایل موقت همشاخه جایگزین میشود |
| Info | آمار بهازای هر commit که پس از موفقیت نوشتن مقصد برگردانده میشود |
| ChangedObjectCount | شمار شیءهای غیرمستقیم تغییر یافته یا جدیدی که توسط این commit افزوده شدهاند |
| AppendedByteCount | بایتهای افزودهشده پس از پیشوند دقیق خروجی قبلی |
| OutputByteCount | کل بایتهای خروجی کامل برگرداندهشده توسط این commit |
| RevisionCount | شمار بازبینیهای ناخالی commitشده در نشست فعلی |
BeginIncrementalSave یک عکس لحظهای معنایی PDFium پایدار را هم بهعنوان خط مبنا مقایسه و هم بهعنوان نخستین خروجی کامل ثبت میکند
هر commit وضعیت فعلی را ثبت میکند، شیءهای فعال classic، hybrid، xref-stream و object-stream را تفکیک میکند، سپس تولید شیء و بایتهای دقیق بدنه را مقایسه میکند
تنها شیءهای غیرمستقیم تغییر یافته یا جدید پس از خروجی قبلی نوشته میشوند و پس از آنها کوچکترین بازبینی لازم xref و trailer
یک منبع classic-xref با جدولهای xref کلاسیک ادامه مییابد، در حالی که منبع xref-stream با جریانهای xref خودنمایه ادامه مییابد
اگر چیزی تغییر نکرده باشد، خروجی قبلی بایتبهبایت برگردانده میشود، هیچ بازبینی افزوده نمیشود و RevisionCount پیش نمیرود
صورت overload مربوط به فایل یک فایل موقت همشاخه مینویسد، مقصد را بهصورت اتمی جایگزین میکند و در صورت شکست نوشتن یا جایگزینی، وضعیت نشست را بازمیگرداند
AllowSignedDocument برابر True باشد؛ مجوز صریح سیاست DocMDP یا FieldMDP را اعتبارسنجی نمیکندEPdfError برمیانگیزدCompressed است تا مقایسهٔ شیءها پایدار بماند
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;