استكشاف أخطاء التحقق من PDF/A وPDF/UA وإصلاحها
النطاق
قسم بعنوان «النطاق»تغطي هذه المدخلات حالات الفشل التي يطلقها المحرّك عند إبقاء المستند ضمن سمة تنسيق المستندات المحمولة/الأرشفة (PDF/A) أو تنسيق المستندات المحمولة/إمكانية الوصول الشامل (PDF/UA). أرقام البنود الواردة أدناه مأخوذة من مصدر المحرّك ورسائل الاستثناءات، وتعيد هذه الصفحة صياغتها. يُبلّغ المحرّك عن حالات فشل السمة التي يكتشفها؛ ولا يصادق على مطابقة المستند. استخدم أداة تحقق خارجية لها مجموعة قواعدها الخاصة للحصول على حكم المطابقة المعتمد.
مدخل: رفض التشفير في وضع PDF/A
قسم بعنوان «مدخل: رفض التشفير في وضع PDF/A»- العرض.
NextPDF\Security\Exception\IncompatiblePdfAModeExceptionبرسالة تشير إلى أنّ عملية التشفير ممنوعة في وضع PDF/A. - السبب المرجّح. جمع المسار بين وضع PDF/A وطلب التشفير. يستشهد المحرّك بالمنظمة الدولية للتوحيد القياسي (ISO) 19005-{1,2,3,4} §6.1.3: يجب ألّا يكون مفتاح
Encryptموجوداً في مقطورة ملف PDF/A. يرفض المحرّك هذا المزيج رفضاً مطلقاً، بصرف النظر عن ترتيب الاستدعاء. - الدليل / التشخيص. يُعيد
getContext()القيمتينpdfa_modeوencryption_operation. يؤكّد اختبار مسار الفشلtests/SecurityScenarios/PdfAEncryptionRefusalTest.phpأنّ الرفض يحدث سواء فعّلت PDF/A قبل استدعاء التشفير أو بعده. - الحل.
- حدّد ما يحتاجه المستند: مطابقة الأرشفة أو التشفير.
- في المستند الأرشيفي، أزِل استدعاء التشفير.
- في المستند المشفّر، أزِل استدعاء تفعيل PDF/A.
- شغّل المسار مجدداً.
- موضوع ذو صلة. التشفير والأذونات.
مدخل: حظر مرشّح الصور في وضع PDF/A-1
قسم بعنوان «مدخل: حظر مرشّح الصور في وضع PDF/A-1»- العرض.
Pdf14FeatureRejectedExceptionأثناء استيراد الصور، مع رسالة تذكر/JPXDecodeأو/JBIG2DecodeوالبندISO 19005-1:2005 §6.1.13. - السبب المرجّح. استورد بناء PDF/A-1 صورةً تستخدم مرشّحاً أُضيف بعد PDF 1.4. يستهدف PDF/A-1 مجموعة ميزات PDF 1.4، لذلك يرفض
PdfA1FeatureGuardتنسيق JPEG 2000 (/JPXDecode) وJBIG2 (/JBIG2Decode). - الدليل / التشخيص. يحتوي
src/Writer/PdfA1FeatureGuard.phpعلى قائمة المرشّحات المحظورة ويُطلق البند المُستشهَد به. يرفض هذا الحارس هذه المرشّحات في سمة PDF/A-1 فقط؛ أمّا PDF/A-2 وPDF/A-3 وسمة PDF 2.0 فتسمح بها. - الحل.
- أعِد ترميز الصورة المصدرية من دون JPEG 2000 أو JBIG2. على سبيل المثال، أعِد حفظها بصيغة JPEG أساسية أو صورة مضغوطة بـ Flate.
- بدلاً من ذلك، استهدف PDF/A-2 أو PDF/A-3؛ فهما يسمحان بتلك المرشّحات.
- شغّل البناء مجدداً.
- موضوع ذو صلة. مرجع المطابقة.
مدخل: خط غير مُضمَّن في وضع PDF/A
قسم بعنوان «مدخل: خط غير مُضمَّن في وضع PDF/A»- العرض. يفشل بناء PDF/A عند التحقق من الخط، أو تُبلّغ أداة تحقق خارجية عن خط غير مُضمَّن.
- السبب المرجّح. استُخدمت محارف من خط لم يُضمَّن برنامجه. ينصّ عقد مدير PDF/A على وجوب تضمين كل خط، وعدم السماح بأي خط من خطوط standard-14 من دون تضمين.
- الدليل / التشخيص. يُعلن
src/Contracts/PdfAManagerInterface.phpالدالةvalidateFont(string $fontName, bool $isEmbedded, array $cmapForward)ويوثّق القاعدة: يجب تضمين كل خط، ولا يُسمح بأي خط من خطوط standard 14 من دون تضمين. يتوفر الإنفاذ الفعلي ضمنnextpdf/pro. - الحل.
- حدّد الخط الذي أُبلغ عنه على أنّه غير مُضمَّن.
- هيّئ ذلك الخط بملف برنامج قابل للتضمين بدلاً من الاعتماد على وجه standard-14 مدمج.
- لفهم تفاعل استبدال Base 14، اقرأ مدخل الخطوط ووسم البنية.
- شغّل البناء مجدداً وأعِد التحقق.
- موضوع ذو صلة. الخطوط ووسم البنية.
مدخل: وجود JavaScript وفشل التحقق من PDF/A
قسم بعنوان «مدخل: وجود JavaScript وفشل التحقق من PDF/A»- العرض. يفشل بناء PDF/A عند التحقق من JavaScript، أو تُبلّغ أداة تحقق خارجية عن إجراء JavaScript.
- السبب المرجّح. يتضمن المستند أو أحد حقول النموذج إجراء JavaScript. يستشهد عقد مدير PDF/A بـ ISO 19005-4:2020 §6.7.1، الذي يحظر إجراءات JavaScript.
- الدليل / التشخيص. يستشهد كلّ من
PdfAManagerInterface::validateNoJavaScript()وvalidateNoJavaScriptActions()بالبند §6.7.1 في كتل التوثيق الخاصة بهما. - الحل.
- أزِل إجراء JavaScript من المستند أو حقل النموذج.
- إذا كان الإجراء ضرورياً للسلوك، فلا يمكن أن يكون المستند PDF/A. أنتِج نسخةً غير PDF/A لذلك الاستخدام.
- شغّل البناء مجدداً وأعِد التحقق.
- موضوع ذو صلة. مرجع المطابقة.
مدخل: المخرجات الموسومة لا تُعلن عن PDF/UA-2
قسم بعنوان «مدخل: المخرجات الموسومة لا تُعلن عن PDF/UA-2»- العرض. لا يُتعرَّف على مستند بُني مع تفعيل وسم البنية بوصفه PDF/UA-2، أو يغيب عنه ادّعاء PDF/UA-2.
- السبب المرجّح. شجرة البنية فارغة. لا يُعلن المحرّك عن PDF/UA-2 لمستند لا يحتوي على بنية موسومة، لأنّ شجرة البنية الفارغة لا تستوفي السمة.
- الدليل / التشخيص. يؤكّد اختبار مسار الفشل
tests/Integration/Accessibility/EmptyTaggedPdfDoesNotAdvertisePdfUa2Test.phpأنّ المستند الموسوم الفارغ لا يُعلن عن PDF/UA-2. هذا سلوك مُوثَّق للمحرّك، وليس عيباً. - الحل.
- تأكّد من أنّ المحتوى يُصدَر عبر مسار وسم البنية، بحيث تمتلئ شجرة البنية بدلاً من أن تبقى فارغة.
- تحقّق من أنّ تسلسلات المحتوى المعلَّم تنطبق على عناصر البنية.
- شغّل البناء مجدداً وأعِد فحص حالة PDF/UA-2.
- موضوع ذو صلة. الخطوط ووسم البنية.
مدخل: فشل PDF/UA-2 بسبب لغة مفقودة أو غير صالحة
قسم بعنوان «مدخل: فشل PDF/UA-2 بسبب لغة مفقودة أو غير صالحة»- العرض. يفشل فحص PDF/UA-2 لأنّ مدخل اللغة مفقود أو ليس وسماً صالحاً.
- السبب المرجّح. يفتقر المستند أو أحد عناصر البنية إلى لغة صالحة. يتطلّب PDF/UA-2 إعلاناً بلغة طبيعية؛ وقيمة
Langالمفقودة أو المُشوَّهة تُخفق في الفحص الصارم. - الدليل / التشخيص. يغطي اختبار مسار الفشل
tests/Unit/Conformance/PdfUa2Section844LangStrictTest.phpاشتراط اللغة الصارم. يجري التحقق من وسوم اللغة عبرsrc/Accessibility/Bcp47Validator.php؛ ويطلق الوسم غير الصالحsrc/Accessibility/InvalidBcp47TagException.php. - الحل.
- عيّن لغةً على مستوى المستند بوصفها وسماً صالحاً وفق الممارسة الفضلى الحالية (BCP) 47، على سبيل المثال
en-USأوzh-Hant-TW. - عندما يوجد مقطع بلغة مختلفة، عيّن اللغة على عنصر البنية ذاك.
- شغّل البناء مجدداً وأعِد التحقق.
- عيّن لغةً على مستوى المستند بوصفها وسماً صالحاً وفق الممارسة الفضلى الحالية (BCP) 47، على سبيل المثال
- موضوع ذو صلة. الخطوط ووسم البنية.
الحالات الحدّية والمزالق
قسم بعنوان «الحالات الحدّية والمزالق»- تنشأ حالات رفض PDF/A وPDF/UA الموصوفة هنا داخل المحرّك. وهي مستقلّة عن حكم أداة التحقق الخارجية ولا تحلّ محلّه. شغّل أداة تحقق مثل veraPDF للحصول على النتيجة المعتمدة.
- يُحلّ الكاتب الفعلي للكائنات المطلوبة لـ PDF/A (دفق بيانات وصفية لمنصّة البيانات الوصفية القابلة للتوسيع (XMP)، ونيّة الإخراج مع ملف تعريف للاتحاد الدولي لألوان الطباعة (ICC)) في وقت التشغيل من
nextpdf/pro. وبتثبيت حزمة Core وحدها، لا تُصدَر تلك الكائنات؛ فالبناء المقتصر على Core ليس مُنتِجاً كاملاً لـ PDF/A. - رفض التشفير مطلق ولا يتعلّق بالترتيب؛ فتفعيل PDF/A بعد استدعاء التشفير سيظل يطلق الرفض.
انظر أيضاً
قسم بعنوان «انظر أيضاً»مسرد المصطلحات: نيّة الإخراج · شجرة البنية