مرجع HotPDF

تُنتج SaveLoadedDocumentDiagnostic مخرجات حتمية وغير مُحزَّمة للفحص والتحرير النصي المضبوط، بينما تُعيد RepairDiagnosticDocument الملف المُحرَّر إلى ملف PDF صالح بنيويًا

سير عمل الذهاب والإياب

  1. حمّل مستندًا واستدعِ SaveLoadedDocumentDiagnostic
  2. حرّر قواميس الكائنات أو بايتات التدفق غير المضغوطة دون محاولة الحفاظ على /Length أو صفوف xref أو startxref يدويًا
  3. استدعِ RepairDiagnosticDocument بخيارات محدودة
  4. افحص THPDFDiagnosticRepairReport واستخدم الوجهة المُصلَحة فقط عندما تُعيد الطريقة True

عقد الإصلاح

عقد الإصلاح

يفشل الإصلاح بأمان (fail closed) في حالات أرقام الكائنات المكرَّرة، وكائنات Catalog المتعددة أو المفقودة، ومراجع القيد الختامي المكسورة، والبايتات غير التعليقية بين الكائنات، وقواعد الكائن غير الصالحة، وتجاوز حدود الكائنات أو المُدخل، وإزاحات xref الكلاسيكية الأعرض من عشرة أرقام، وإخفاقات التحقق الصارم عند إعادة التحميل

تُتخطّى العلامات (markers) داخل الكائنات المُتحقَّق منها، بحيث لا يصبح النص الشبيه بالكائنات داخل السلاسل النصية وحمولات الـ stream المُرمَّزة إدخال xref

عقد الإصلاح

تُتخطّى العلامات (markers) داخل الكائنات المُتحقَّق منها، بحيث لا يصبح النص الشبيه بالكائنات داخل السلاسل النصية وحمولات الـ stream المُرمَّزة إدخال xref

تحدّ MaxInputBytes وMaxObjectCount وMaxObjectNumber المسح والبيانات الوصفية المحتفَظ بها وصفوف xref المُصدَرة قبل نشر المخرجات

عقد الإصلاح

var
  Options: THPDFDiagnosticRepairOptions;
  Report: THPDFDiagnosticRepairReport;
begin
  Options := THPDFDiagnosticRepairOptions.Default;
  Options.MaxInputBytes := Int64(16) * 1024 * 1024 * 1024;

  if not THotPDF.RepairDiagnosticDocument(
    'edited-diagnostic.pdf',
    'repaired.pdf',
    Options,
    Report
  ) then
    raise Exception.Create(string(Report.Diagnostic));
end;

عقد الإصلاح