تخطَّ إلى المحتوى

خط أساس PDF 2.0: بنود ISO 32000-2 التي ينفّذها NextPDF

بيان الحدود. ينفّذ ⁨NextPDF⁩ البنود المُستشهَد بها؛ ولا يُعدّ ذلك ادعاءً شاملًا بالمطابقة الكاملة لمعيار ⁨ISO 32000-2⁩.

⁨ISO 32000-2⁩:2020 هو المعيار الأساسي لـ ⁨PDF 2.0.⁩ يُصدِر ⁨NextPDF Core⁩ ملفات ⁨PDF 2.0⁩ غير مقيّدة افتراضيًا (ConformanceMode::Plain): ترويسة %PDF-2.0، وفهرس مستند، وبنية مرجع متقاطع، ومقطورة مطابِقة. توثّق هذه الصفحة بنود خط الأساس التي ينفّذها ⁨NextPDF⁩ والحدّ الصريح لهذا الادعاء. تنفّذ المكتبة البنود المُستشهَد بها، لكنها لا تقدّم ادعاءً شاملًا بأنها “مطابِقة تمامًا لـ ⁨ISO 32000-2⁩”. الملف المطابِق هو ملف يستطيع قارئ مطابِق معالجته بموجب المعيار. وهذا حكم يصدره المُحقِّق، وليس علامةً تضبطها المكتبة.

Terminal window
composer require nextpdf/core:^3

خرج خط أساس ⁨PDF 2.0⁩ هو الافتراضي في ⁨Core⁩؛ ولا تحتاج إلى تفعيل ملف تعريف. ConformanceMode::Plain هو المُميِّز الافتراضي. ملفات تعريف ⁨PDF/A-4⁩ و⁨PDF/UA-2⁩ و⁨PDF/X⁩ و⁨ZUGFeRD⁩ هي مجموعات فرعية مقيّدة مبنية فوق خط الأساس هذا.

يبدأ كل مستند ⁨NextPDF⁩ كملف ⁨PDF 2.0⁩ قبل تطبيق أي ملف تعريف. يلتزم الكاتب بالمتطلبات البنيوية التي يفرضها ⁨ISO 32000-2⁩ على الملف المطابِق:

  • فهرس المستند — §7.7.2: الكائن الجذر المُشار إليه بـ /Root في المقطورة، وهو موجود في كل ملف خرج.
  • بنية المرجع المتقاطع — §7.5.8: جدول مرجع متقاطع أو دفق يبيّن موضع كل كائن.
  • المقطورة — §7.5.5: قاموس المقطورة الذي يجب أن يحمله الملف المطابِق، بما في ذلك مُعرّف الملف /ID. يكون /ID فريدًا لكل ملف وتستبعده عملية التسوية عند المقارنة. لهذا السبب يستخدم معظم الخرج متعدّد الكائنات reproducibility_profile: structural، وليس المطابقة على مستوى البت.
  • البنية المنطقية — §14.7.2: عند تمكين الوضع الموسوم، يُستخدَم خط أساس StructTreeRoot لدعم ملف تعريف ⁨PDF/UA-2.⁩
  • امتداد الإصدار — §7.12: عند إعلان امتداد مطوّر، تُستخدَم آلية قاموس ⁨Extensions⁩ / بادئة المطوّر.

ينفّذ ⁨NextPDF⁩ هذه البنود، لكنه لا يُجري تقييمًا كاملًا للمطابقة لـ ⁨ISO 32000-2.⁩ استخدم مُحقِّقًا خارجيًا، مثل مدقّق قواعد ⁨Arlington⁩ أو ⁨veraPDF⁩، لاتخاذ ذلك القرار. يوفّر NextPDF\Compliance عمليات تحقّق متقاطع على مستوى دفق البايتات (ArlingtonValidator) تُظهِر التعارضات البنيوية. تساعد هذه العمليات في التحقّق، لكنها ليست شهادة.

الرمزالتأثير
ConformanceMode::Plainالخيار الافتراضي — خرج ⁨PDF 2.0⁩ غير مقيّد.
ConformanceMode::requiresPdf17(): bool‏⁨False⁩ لأوضاع ⁨PDF 2.0⁩؛ لذلك يصدر الكاتب ترويسة %PDF-2.0.
NextPDF\Compliance\Validator\ArlingtonValidatorتحقّق متقاطع من القواعد في مقابل نموذج ⁨Arlington PDF⁩ (يساعد في التحقّق).

عيّنة برمجية — بداية سريعة

قسم بعنوان «عيّنة برمجية — بداية سريعة»
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Core\Document;
$out = getenv('NEXTPDF_COOKBOOK_OUTPUT') ?: __DIR__ . '/baseline.pdf';
$doc = Document::createStandalone(); // ConformanceMode::Plain — PDF 2.0
$doc->setTitle('PDF 2.0 baseline');
$doc->writeHtml('<h1>Hello PDF 2.0</h1><p>Unconstrained baseline output.</p>');
$doc->save($out);
echo "Wrote {$out} (%PDF-2.0). Validate structure with an external checker.\n";

عيّنة برمجية — بيئة الإنتاج

قسم بعنوان «عيّنة برمجية — بيئة الإنتاج»

في بيئة الإنتاج، شغّل مُحقِّقًا بنيويًا خارجيًا (⁨Arlington⁩ / ⁨veraPDF⁩) على خرج تمثيلي ضمن التكامل المستمر (⁨CI⁩)، واجعل تقريره شرطًا مانعًا. تُصدِر المكتبة البنية؛ ويحدّد المدقّق ما إذا كانت مطابِقة. لا تقدّم المكتبة أي ادعاء شامل بالمطابقة.

  • /ID فريد لكل ملف. خرج خط الأساس الذي يحتوي على /ID في المقطورة، أو /CreationDate، أو بادئات مجموعات فرعية للخطوط ليس ثابتًا على مستوى البايت. استخدم الملف التعريفي البنيوي (⁨qpdf-normalize⁩) للمقارنة، لا قيمة ⁨sha256⁩ خام.
  • ‏⁨Plain⁩ ≠ أرشيفي. ConformanceMode::Plain ليس ⁨PDF/A.⁩ وهو لا يحمل أي ⁨OutputIntent⁩ أو علامة pdfaid. لا تعامله على أنه أرشيفي.
  • التنفيذ ≠ المطابقة الكاملة. تسرد هذه الصفحة البنود التي ينفّذها ⁨NextPDF.⁩ وهي لا تنصّ على أن كل بند في ⁨ISO 32000-2⁩ مُستوفى لكل مستند. ذلك حكم يصدره المُحقِّق لكل مستند على حدة.
  • الامتدادات تخضع لمساحة أسماء. يستخدم امتداد المطوّر قاموس ⁨Extensions⁩ في §7.12 مع بادئة مُسجَّلة. يُعدّ المفتاح الخاص بلا بادئة انحرافًا عن خط الأساس.

إصدار خط الأساس هو المسار الأساسي للمحرّك. ميزانية الأداء هي زمن الجدار ≤ 1500 ⁨ms⁩ والذروة ≤ 64 ⁨MB⁩ لمستند نمطي. يدعم كاتب خط الأساس مصفوفة التوافق الخلفي (⁨PHP 8.1⁩–8.4).

خرج خط أساس ⁨PDF 2.0⁩ لا يتضمن أي تشفير أو توقيع ما لم تُضِف واحدًا صراحةً. يوفّر التشفير السرّية ويُغطّى في وصفة منفصلة. تعتمد بتات أذونات ⁨ISO⁩ على تعاون القارئ، وليست آليةً للتحكّم في الوصول. لا يقدّم خط الأساس أي ضمان أمني.

الادعاءالمواصفةالبند⁨reference_id⁩
يجب أن يحمل ملف ⁨PDF 2.0⁩ المطابِق مقطورة / بنية ملف مطابِقة.⁨ISO 32000-2⁩§7.5.5
يمكن تحديد موضع كل كائن عبر جدول مرجع متقاطع أو دفق.⁨ISO 32000-2⁩§7.5.8
يحتوي الملف على فهرس مستند بوصفه الكائن الجذر له.⁨ISO 32000-2⁩§7.7.2
تُصاغ المطابقة بدلالة الكتّاب والقارئين المطابِقين.⁨ISO 32000-2⁩§7.2
تستخدم امتدادات الإصدار قاموس ⁨Extensions⁩ / بادئة المطوّر.⁨ISO 32000-2⁩§7.12
يُبنى الخرج الموسوم على خط أساس البنية المنطقية في ⁨ISO 32000-2.⁩⁨ISO 32000-2⁩§14.7.2

الاستشهادات هي مؤشّرات ⁨clause-id⁩ + reference_id تشير إلى مجموعة بيانات التحقّق. لا يُعاد إنتاج أي نص من المعايير؛ يلخّص ⁨NextPDF⁩ البنود بأسلوبه الخاص.