PDFium Delphi Component Docs

الطريقة CommitIncrementalSave

المكوِّن: TPdf  ·  الوحدة: PDFium
يُلحق التعديلات المُجراة منذ آخر إتمام كمراجعة PDF جديدة

الصياغة

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

Streamوجهة المستند الكامل، بما يشمل خط الأساس وكل مراجعة أُلحقت حتى الآن؛ و nil يُطلق EPdfError
Infoيستقبل TPdfIncrementalCommitInfo عدد الكائنات والبايتات وإزاحتي xref السابقة والجديدة وعدد المراجعات وحالتي التعمية والتحقق ونتائج متانة الملف
ResultTrue حين يُكتب الناتج الكامل بعد التحقق

 

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

FileNameالملف الوجهة، ويُستبدل ذريًا عبر ملف جانبي متين في المجلد نفسه
Infoتقرير TPdfIncrementalCommitInfo نفسه المستخدم في صيغة التيار، مع ضبط Durable و ReplacedAtomically بعد نجاح مرحلتي الملف ذينك
ResultTrue حين يستبدل الملف الجانبي المتحقق منه الوجهة

الوصف

يقارن المستند الحي بالحالة الملتقطة عند آخر إتمام، أو بخط الأساس في المرة الأولى، ويُلحق الكائنات المتغيرة مع قسم مراجع متقاطعة جديد. لا يُعاد كتابة البايتات السابقة أبدًا، فتبقى كل مراجعة سابقة مطابقة بايتيًا وقابلة للاسترجاع

AppendedByteCount هو حجم المراجعة الجديدة وحدها، بينما يحددان PreviousOutputByteCount و OutputByteCount البادئة غير القابلة للتغيير والناتج الكامل. ويحدد PreviousXrefOffset و OutputXrefOffset سلسلة المراجعات، ويُبلِّغ ChangedObjectCount عن عدد الكائنات التي وجدها المقارنة

يجتاز كل مرشح فحوصات حدود المراجعة المتفرقة وإعادة فتح صارمة مستقلة وفحوصات عدد الصفحات ومعالج الأمان، والتحقق من PDF MAC عند وجوده. ويُبلِّغ Encrypted و Validated عن هذه الخصائص

يكتب overload الملف بجانب الهدف ثم flush ويغلق ويعيد الفتح والتحقق قبل الاستبدال الذري؛ يطلب Windows ‏write-through، ويفحص Unix دعم flush للمجلد قبل الاستبدال وينفذه للأب بعد rename

يحفظ الفشل قبل الاستبدال الهدف القديم ويستعيد أساس الجلسة وعدد المراجعات؛ يرفع فشل flush للمجلد بعد rename الناجح EPdfOutputCommitError من الوحدة الداخلية FPdfPlatform: استُبدل الإخراج فعلًا و Info.ReplacedAtomically=True و Info.Durable=False؛ تحفظ الجلسة الأساس المعتمد لتجنب إلحاق تعديل لاحق بإخراج قديم

تبين Durable نجاح flush المطلوب للمنصة، لا تصادق العتاد أو نظام الملفات بعد فقد الطاقة؛ قد ترفع APIs الملفات الأخرى التي تستخدم الاستبدال نفسه هذا الاستثناء بعد النشر؛ ميزه عن فشل حفظ الإخراج السابق

يُطلق الاستدعاء دون جلسة مفتوحة EPdfError، لذا يجب أن يسبقه BeginIncrementalSave

انظر أيضًا

BeginIncrementalSave, EndIncrementalSave, IncrementalSaveActive, SaveAs