خط أساس 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”. الملف المطابِق هو ملف يستطيع قارئ مطابِق معالجته بموجب المعيار. وهذا حكم يصدره المُحقِّق، وليس علامةً تضبطها المكتبة.
التثبيت
قسم بعنوان «التثبيت»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) تُظهِر التعارضات البنيوية. تساعد هذه العمليات في التحقّق، لكنها ليست شهادة.
واجهة API
قسم بعنوان «واجهة API»| الرمز | التأثير |
|---|---|
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 البنود بأسلوبه الخاص.