THotPDF.RepairPDFA4 Method

تشغّل معاملة محدودة على رسم بيانات الكائنات تطبّق تطبيعًا حتميًّا لـ PDF/A-4، وتتحقق من النتيجة، ثم إما تثبّت مجموعة الإصلاحات الآمنة كاملة أو تعيد حالة المستند الأصلية

التصريح

function RepairPDFA4(
  const Options: THPDFPDFA4RepairOptions;
  out Report: THPDFPDFA4RepairReport;
  out Issues: THPDFPDFA4ValidationIssues): boolean; overload;

function RepairPDFA4(
  const Options: THPDFPDFA4RepairOptions;
  out Report: THPDFPDFA4RepairReport;
  out Issues: THPDFPDFA4ValidationIssues;
  out Findings: THPDFComplianceFindings): boolean; overload;

عقد التثبيت

حدود الإصلاح الآمن

يمكن للطريقة تطبيع ترويسة PDF 2.0، وإنشاء معرّف trailer مفقود، وإنشاء أو إصلاح streams وقواميس البيانات الوصفية، وتطبيع تعريف PDF/A عبر URI مساحة الاسم مع الحفاظ على أي بادئة RDF مشروعة، وإزالة إدخالات Catalog المحظورة، وإزالة بنيات العرض البديل

إصلاح XMP بترميز UTF-8 يزيل بايت ترويسة الحزمة المحظور وصفات الترميز المحظورة، ويستخدم مساحة اسم تعريف PDF/A القياسية، ويكتب part=4 وrev=2020، ويختار خاصية المطابقة الصحيحة: الأساسية أو الهندسية أو خاصية الملف الملحق

خط أنابيب الإصلاح لا يعيد كتابة streams محتوى الصفحات أو التعليقات التوضيحية، ولا الخطوط، ولا فضاءات الألوان، ولا الشفافية، ولا الصور، ولا مشغّلات الرسوميات، ولا النص المستخرج

التراجع وقابلية التدقيق

لقطات الرسم تغطي تغييرات القواميس وبايتات stream البيانات الوصفية، لذا يستعيد التراجع الترويسة الأصلية وحالة trailer ورسم الكائنات وحِمل XMP ومحتوى الصفحة

نسخة overload المشتركة للنتائج ترفق بإبلاغها إجراءاتِ الإصلاح، وحالتَها: مطبَّقة أو غير محسومة أو فاشلة أو متراجَع عنها، وأعدادَ الإصلاح، ومعرّفاتِ القواعد المستقرة، والبنود، ومسارات الكائنات، وأرقام الكائنات، ومواضع الصفحات

ميزانيات الكائنات والتغييرات والنتائج المحتفظ بها والبايتات المفكوكة ورموز المحتوى تمنع الملفات العدائية من تحويل الإصلاح أو بوابات التحقق الخاصة به إلى عمل غير منتهٍ

مثال

var
  Options: THPDFPDFA4RepairOptions;
  Report: THPDFPDFA4RepairReport;
  Issues: THPDFPDFA4ValidationIssues;
begin
  Options := THPDFPDFA4RepairOptions.Default;
  Options.Profile := p4pAutomatic;

  if not PDF.RepairPDFA4(Options, Report, Issues) then
    raise Exception.Create('PDF/A-4 repair rolled back');

  if not Report.ValidationSucceeded then
    LogRemainingPDFA4Issues(Issues);
end;

واجهات برمجة التطبيقات ذات الصلة