مرجع HotPDF

يُسلسل pfXML الفحوصات المدمجة والتحذيرات والتلميحات ومعرّفات القواعد الثابتة ومراجع المواصفات ومواقع الكائن أو الصفحة أو البايت ضمن مفردات urn:hotpdf:preflight:mrr:1 ذات الإصدار

يضيف CreatePreflightMRR plugins موثوقة داخل نفس العملية لاستخراج الميزات وقواعد تحقق مخصصة، بينما يجمع ValidatePDFWithPluginBundle هذه القواعد مع THPDFValidationPolicy موجودة

تسجيل plugin محدود

function EvaluateVendorRules(
  const Context: THPDFPreflightPluginContext;
  out PluginResult: THPDFPreflightPluginResult;
  out ErrorMessage: AnsiString): Boolean;
begin
  SetLength(PluginResult.Findings, 1);
  PluginResult.Findings[0] := THPDFPreflightPluginFinding.Create(
    'vendor.metadata.required', 'Vendor metadata is present', True, ppsError);
  PluginResult.Findings[0].Scope := 'metadata';
  PluginResult.Findings[0].Path := '/Vendor';
  ErrorMessage := '';
  Result := True;
end;

Limits := THPDFPreflightPluginLimits.Default;
SetLength(Plugins, 1);
Plugins[0] := THPDFPreflightPluginDescriptor.Create(
  'vendor-policy', '1.0', [ppcValidationRules], EvaluateVendorRules);
XML := PDF.CreatePreflightMRR('Input.pdf', '', Plugins, Limits);

الحتمية وحدود الثقة

يتحقق HotPDF من تفرّد معرّفات plugin بترميز ASCII ومن إصدار ABI رقم 1، وينفّذ الـplugins بترتيب معرّف ثابت، ويرتّب الميزات والنتائج المُرجعة، ويستبعد تذبذب التوقيت من التقرير، ويهرب قيم XML، ويرفض القدرات غير المعلنة أو معرّفات القواعد غير الصالحة

تحدّ الحدود عدد الإضافات (plugins) وعدد الميزات وعدد النتائج وإجمالي بايتات السلاسل النصية وبايتات مخرجات XML والوقت المنقضي لكل إضافة والوقت المنقضي الإجمالي؛ وتساهم الإضافة المرفوضة بنتيجة تنفيذ حتمية ولا تستهلك ميزانيات الميزات أو النتائج أو السلاسل المشتركة

تحدّ الحدود عدد الإضافات (plugins) وعدد الميزات وعدد النتائج وإجمالي بايتات السلاسل النصية وبايتات مخرجات XML والوقت المنقضي لكل إضافة والوقت المنقضي الإجمالي؛ وتساهم الإضافة المرفوضة بنتيجة تنفيذ حتمية ولا تستهلك ميزانيات الميزات أو النتائج أو السلاسل المشتركة

تُفحص حدود الوقت المنقضي بعد عودة المُقيِّم evaluator لأن callback داخل نفس العملية لا يمكن مقاطعته بأمان؛ ينبغي للمُقيِّمات طويلة التشغيل استطلاع Context.CancellationToken والعودة بسرعة

انظر THotPDF.CreatePreflightMRR، وTHotPDF.ValidatePDFWithPluginBundle، وTHPDFPreflightPluginDescriptor، وTHPDFPreflightPluginLimits