إنشاء مخرجات أرشيفية بصيغة PDF/A-4
لمحة سريعة
قسم بعنوان «لمحة سريعة»استخدم هذه الوصفة لإنشاء مخرجات أرشيفية بصيغة PDF/A-4 (المنظمة الدولية للتوحيد القياسي (ISO) 19005-4) باستخدام Pro PdfAManager. عند الحفظ، يدرج NextPDF عنصر OutputIntent وملف تعريف ICC المضمَّن (الاتحاد الدولي للألوان (ICC)) وبيانات التعريف. ينتج NextPDF مخرجات تستهدف المطابقة؛ ويقرر مدقق مستقل مدى المطابقة. تستند الوصفة إلى examples/32-pdfa4-icc.php.
التثبيت
قسم بعنوان «التثبيت»composer require nextpdf/core:^3composer require nextpdf/proPDF/A-4 ميزة من فئة Pro. في تثبيت Core فقط، يطرح enablePdfA() الاستثناء InvalidConfigException. تذكر الرسالة قدرة security.pdfa المفقودة وتشير إلى العلاج composer require nextpdf/pro. للتحقق، تحتاج إلى مدقق PDF/A على PATH. تستخدم الأمثلة veraPDF مع --flavour 4.
نظرة مفاهيمية عامة
قسم بعنوان «نظرة مفاهيمية عامة»PDF/A-4 هو ملف تعريف الأرشفة ISO 19005-4 المبني على ISO 32000-2 (PDF 2.0). الملف المطابق حتمي اللون ومكتفٍ ذاتياً. فهو يعلن عن OutputIntent يشير إلى ملف تعريف ICC الوجهة المضمَّن، بحيث يمكن إعادة إنتاج اللون دون موارد خارجية (القسم 6.2.3). كل برنامج خط مضمَّن (القسم 6.2.10.4.1). يحمل المستند بيانات تعريف pdfaid بصيغة منصة بيانات التعريف القابلة للتوسعة (XMP) (القسم 6.7.3). الملف غير مشفَّر (القسم 6.6.4 — تحظر PDF/A مفتاح المقطورة Encrypt).
ينمذج NextPDF PDF/A عبر التعداد المصنَّف ConformanceMode. ينشئ enablePdfA() كائن Pro PdfAManager ويتخذ ConformanceMode::PdfA4 قيمةً افتراضية. أثناء save()، يدرج المدير عنصر OutputIntent ودفق ICC ومخططات امتداد XMP. يحافظ المميِّزان pdfaPart() وpdfaConformanceLetter() على اتساق بيانات التعريف pdfaid:part / pdfaid:conformance مع المتغير المحدَّد (الأساس 4، 4e، 4f). لا يصدر ملف التعريف الأساسي أي حرف pdfa:conformance، وفق ما يقتضيه الجزء.
واجهة برمجة التطبيقات
قسم بعنوان «واجهة برمجة التطبيقات»تُولَّد واجهة برمجة التطبيقات (API) من PHPDoc. استخدم نقاط الدخول الرئيسية الآتية:
\NextPDF\Core\Document::createStandalone(): DocumentDocument::enablePdfA(?object $version = null): static\NextPDF\Support\CapabilityRegistry::getInstance()->get('security.pdfa')->isAvailable(): bool\NextPDF\Conformance\ConformanceMode::PdfA4/PdfA4e/PdfA4fConformanceMode::pdfaPart(): 2|3|4|nullوConformanceMode::pdfaConformanceLetter(): string
نموذج برمجي — بداية سريعة
قسم بعنوان «نموذج برمجي — بداية سريعة»<?php
declare(strict_types=1);
require_once __DIR__ . '/../vendor/autoload.php';
use NextPDF\Core\Document;use NextPDF\Support\CapabilityRegistry;
$out = __DIR__ . '/output/32-pdfa4-icc.pdf';
// Probe before activating a Pro-gated feature so a Core-only install// gets an actionable message instead of a stack trace.$registry = CapabilityRegistry::getInstance();if (!$registry->get('security.pdfa')->isAvailable()) { fwrite(STDERR, "PDF/A-4 requires nextpdf/pro. Run: composer require nextpdf/pro\n"); exit(1);}
$doc = Document::createStandalone();$doc->enablePdfA(); // defaults to ConformanceMode::PdfA4$doc->setTitle('Archival Record 2026-0042');$doc->setLanguage('en');$doc->addPage();$doc->setFont('helvetica', '', 12);$doc->cell(0, 10, 'This document targets PDF/A-4.', newLine: true);$doc->save($out); // PdfAManager emits OutputIntent + ICC + XMP here
echo "Created: output/32-pdfa4-icc.pdf\n";نموذج برمجي — الإنتاج
قسم بعنوان «نموذج برمجي — الإنتاج»استخدم هذا البرنامج المكتفي ذاتياً داخل إطار اختبار. في الإنتاج، اجعل حكم المدقق بوابةَ البناء. نجاح save() يثبت أن NextPDF أصدر القطع الأثرية؛ والمدقق وحده يثبت المطابقة.
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Core\Document;use NextPDF\Exception\InvalidConfigException;use NextPDF\Support\CapabilityRegistry;
$out = getenv('NEXTPDF_COOKBOOK_OUTPUT') ?: (__DIR__ . '/archival.pdf');
if (!CapabilityRegistry::getInstance()->get('security.pdfa')->isAvailable()) { fwrite(STDERR, "PDF/A-4 requires nextpdf/pro. Run: composer require nextpdf/pro\n"); exit(1);}
try { $doc = Document::createStandalone(); $doc->enablePdfA(); // ConformanceMode::PdfA4
$doc->setTitle('Archival Record 2026-0042'); $doc->setLanguage('en'); $doc->addPage(); $doc->setFont('helvetica', '', 12); $doc->cell(0, 10, 'Long-term archival record. PDF/A-4 (ISO 19005-4).', newLine: true);
// Do NOT call setEncryption(): PDF/A prohibits the Encrypt key and // the call raises an incompatibility exception in either order. $doc->save($out);} catch (InvalidConfigException $e) { fwrite(STDERR, "PDF/A-4 activation failed: {$e->getMessage()}\n"); exit(1);}
$exitCode = 0;$report = [];exec('verapdf --flavour 4 ' . escapeshellarg($out), $report, $exitCode);
if ($exitCode !== 0) { fwrite(STDERR, "veraPDF FAILED — output is not PDF/A-4 conforming\n"); fwrite(STDERR, implode("\n", $report) . "\n"); exit(1);}
echo "veraPDF PASS — archival.pdf is reported PDF/A-4 conforming\n";على مضيف مثبت عليه nextpdf/pro ومع verapdf يبلّغ بأن الملف مطابق، يكون المخرج القياسي المتوقع (STDOUT) هو:
veraPDF PASS — archival.pdf is reported PDF/A-4 conformingعلى مضيف Core فقط، يخرج البرنامج بقيمة غير صفرية بعد كتابة PDF/A-4 requires nextpdf/pro. Run: composer require nextpdf/pro إلى الخطأ القياسي (STDERR). إذا أبلغ verapdf عن مشكلة، يخرج البرنامج بقيمة غير صفرية بعد veraPDF FAILED — output is not PDF/A-4 conforming. تنسب الصياغة الحكم إلى veraPDF؛ ولا يؤكد NextPDF مطابقة PDF/A-4.
الحالات الحدية والمزالق
قسم بعنوان «الحالات الحدية والمزالق»- بوابة Pro. في تثبيت Core فقط، يطرح
enablePdfA()الاستثناءInvalidConfigException. تذكر الرسالةsecurity.pdfaوالعلاجcomposer require nextpdf/pro. افحص السجل أولاً لعرض رسالة واضحة للمشغّل. - تعارض التشفير. إذا استدعيت
setEncryption()أوuseAesGcm()أوsetPublicKeyEncryption()على مستند PDF/A، يطرح NextPDF استثناء عدم توافق بأي من ترتيبَي الاستدعاء. تحظر PDF/A-4 مفتاح المقطورةEncrypt (ISO 19005-4 القسم 6.6.4). - متغير المطابقة. مرِّر Pro
PdfAVersionإلىenablePdfA()من أجل4e(الهندسة، ثلاثي الأبعاد) أو4f(مرفقات الملفات). لا يصدر ملف التعريف الأساسي أي حرفpdfa:conformance؛ ويحدِّد4e/4fالقيمتينE/F. يحافظ المميِّزConformanceModeعلى اتساق القيمةpdfaid:part. - الوسم مستقل. يعامل أساس PDF/A-4 الوسم على أنه اختياري. للحصول على مخرج يكون قابلاً للوصول وأرشيفياً في الوقت نفسه، فعّل الوضع الموسوم وPDF/A كلٌ على حدة؛ راجع وصفة PDF/UA-2.
- البوابة هي المدقق. نجاح
save()يعني أن القطع الأثرية صدرت، لا أن الملف مطابق. لا تصرّح بمطابقة PDF/A-4 حتى يجتاز المدقق.
الأداء
قسم بعنوان «الأداء»يضيف عنصر OutputIntent دفق ملف تعريف ICC واحداً (بضع مئات من الكيلوبايت لـ sRGB) إضافةً إلى حزمة XMP. يهيمن تضمين الخطوط على الحجم عندما يستخدم المستند خطوطاً غير الأربعة عشر الأساسية. بالنسبة إلى المستندات الأرشيفية النموذجية، تبقى الوصفة ضمن ميزانية 2000 ms / 128 MB. ينطبق ملف إعادة الإنتاج الدلالي: قارن مخرجاً موجهاً للمدقق عبر شجرة بنية النحو المجردة (AST) البنيوية، إضافةً إلى بيانات التعريف، بدلاً من البايتات الخام.
ملاحظات أمنية
قسم بعنوان «ملاحظات أمنية»إقامة البيانات وإجراءات التخفيف الخاصة بالبيانات الشخصية
قسم بعنوان «إقامة البيانات وإجراءات التخفيف الخاصة بالبيانات الشخصية»المخرج الأرشيفي طويل العمر ومكتفٍ ذاتياً بحكم التصميم. تبقى أي بيانات شخصية في المحتوى طوال عمر الأرشيف. ينتقل ملف تعريف ICC المضمَّن وبيانات التعريف مع الملف. طبّق سياسة الاحتفاظ والتقليل قبل الأرشفة. لا تملك PDF/A-4 دلالات تنقيح.
القياس الآمن وتنظيف السجلات
قسم بعنوان «القياس الآمن وتنظيف السجلات»تكتب الوصفة سطر تقدم ثابتاً فقط. قد يتضمن مخرج veraPDF شظايا محتوى؛ أبقِ سجلات المدقق خارج مصارف السجلات المشتركة للمستندات ذات المحتوى الحساس.
نموذج التهديد
قسم بعنوان «نموذج التهديد»PDF/A-4 ملف تعريف لأمانة الأرشفة، وليس ضابطاً للسلامة أو الأصالة. فهو لا يوقّع الملف ولا يجعل العبث به ظاهراً. ادمجه مع توقيع عندما يكون المصدر مهماً. تغطي وصفة منفصلة التوقيع. التشفير متنافٍ مع PDF/A وفق المواصفة.
سلوك وضع FIPS
قسم بعنوان «سلوك وضع FIPS»لا تجري هذه الوصفة أي عملية تشفيرية. لا يغير وضع معايير معالجة المعلومات الفدرالية (FIPS) سلوكها. تحظر PDF/A-4 التشفير، لذا لا يُختار أي مُعمٍّ.
المطابقة
قسم بعنوان «المطابقة»| البيان | المواصفة | البند | reference_id |
|---|---|---|---|
| تتطلب PDF/A-4 عنصر OutputIntent يشير إلى ملف تعريف ICC مضمَّن. | ISO 19005-4 | §6.2.3 | |
| اللون مستقل عن الجهاز عبر ملف الوجهة الشخصي للمُخرَج. | ISO 19005-4 | §6.2.4.3 | |
| كل برنامج خط مُضمَّن. | ISO 19005-4 | §6.2.10.4.1 | |
| يحمل المستند تعريف pdfaid في XMP. | ISO 19005-4 | §6.7.3 | |
| التشفير محظور في PDF/A-4. | ISO 19005-4 | §6.6.4 | |
| يقرر مُدقِّق، لا المُنتِج، مدى المطابقة. | ISO 19005-4 | §6.7.3 |
ينتج NextPDF مخرجات تستهدف المطابقة مع PDF/A-4. الدعم ليس مطابقة؛ وملف التعريف المختبَر ليس شهادة. لا تؤكد هذه الوصفة المطابقة؛ بل يتخذ مدقق مستقل، مثل veraPDF، ذلك القرار. اجعل حكمه بوابةَ البناء.