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 المتراكم الكامل بعد هذا الإيداع |
| FileName | مسار إخراج يُستبدل فقط بعد نجاح ملف مؤقت شقيق |
| Info | إحصاءات لكل إيداع تُعاد بعد نجاح كتابة الوجهة |
| ChangedObjectCount | عدد الكائنات غير المباشرة المغيَّرة أو الجديدة الملحقة بهذا الإيداع |
| AppendedByteCount | البايتات الملحقة بعد بادئة الإخراج السابق الدقيقة |
| OutputByteCount | إجمالي البايتات في الإخراج الكامل الذي يعيده هذا الإيداع |
| RevisionCount | عدد المراجعات غير الفارغة المودعة في الجلسة الحالية |
يلتقط BeginIncrementalSave لقطة PDFium دلالية مستقرة كخط أساس للمقارنة وأول إخراج كامل في آن واحد
يلتقط كل إيداع الحالة الحالية، ويحل الكائنات النشطة الكلاسيكية والهجينة و xref-stream و object-stream، ثم يقارن توليد الكائن وبايتات الجسم الدقيقة
تُكتب الكائنات غير المباشرة المغيَّرة أو الجديدة فقط بعد الإخراج السابق، يليها أصغر مراجعة xref ومقطع ذيل مطلوبة
يواصل مصدر xref الكلاسيكي بجداول xref كلاسيكية، بينما يواصل مصدر xref-stream بتيارات xref ذاتية الفهرسة
إذا لم يتغير شيء، يُعاد الإخراج السابق بايتًا مقابل بايت، ولا تُلحق مراجعة، ولا يتقدم RevisionCount
يكتب تحميل الملف الزائد ملفًا مؤقتًا شقيقًا، ويستبدل الوجهة ذريًا، ويستعيد حالة الجلسة إذا فشلت الكتابة أو الاستبدال
AllowSignedDocument هو True؛ والإذن الصريح لا يتحقق من سياسة DocMDP أو FieldMDPEPdfErrorCompressed بحيث تظل مقارنة الكائنات مستقرة
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;