PDFium Delphi Component Docs

جلسة الحفظ التزايدي

المكوّن: TPdf  ·  الوحدة: PDFium
تلحق الكائنات غير المباشرة المغيَّرة أو الجديدة فقط مع الحفاظ على كل بايت إخراج سابق

الصياغة

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يسمح صراحةً بجلسة على مستند موقَّع؛ والافتراضي يرفضها
StreamTStream يستقبل PDF المتراكم الكامل بعد هذا الإيداع
FileNameمسار إخراج يُستبدل فقط بعد نجاح ملف مؤقت شقيق
Infoإحصاءات لكل إيداع تُعاد بعد نجاح كتابة الوجهة

Commit Information

ChangedObjectCountعدد الكائنات غير المباشرة المغيَّرة أو الجديدة الملحقة بهذا الإيداع
AppendedByteCountالبايتات الملحقة بعد بادئة الإخراج السابق الدقيقة
OutputByteCountإجمالي البايتات في الإخراج الكامل الذي يعيده هذا الإيداع
RevisionCountعدد المراجعات غير الفارغة المودعة في الجلسة الحالية

الوصف

يلتقط BeginIncrementalSave لقطة PDFium دلالية مستقرة كخط أساس للمقارنة وأول إخراج كامل في آن واحد

يلتقط كل إيداع الحالة الحالية، ويحل الكائنات النشطة الكلاسيكية والهجينة و xref-stream و object-stream، ثم يقارن توليد الكائن وبايتات الجسم الدقيقة

تُكتب الكائنات غير المباشرة المغيَّرة أو الجديدة فقط بعد الإخراج السابق، يليها أصغر مراجعة xref ومقطع ذيل مطلوبة

يواصل مصدر xref الكلاسيكي بجداول xref كلاسيكية، بينما يواصل مصدر xref-stream بتيارات xref ذاتية الفهرسة

إذا لم يتغير شيء، يُعاد الإخراج السابق بايتًا مقابل بايت، ولا تُلحق مراجعة، ولا يتقدم RevisionCount

يكتب تحميل الملف الزائد ملفًا مؤقتًا شقيقًا، ويستبدل الوجهة ذريًا، ويستعيد حالة الجلسة إذا فشلت الكتابة أو الاستبدال

Constraints

مثال

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;

انظر أيضًا

SaveAs, SaveAsObjectStream