أنشئ مخرجات PDF/A-4 واجعلها مشروطة بحُكم veraPDF المرجعي
لمحة سريعة
قسم بعنوان «لمحة سريعة»يوضح هذا الدليل كيفية إنشاء مخرجات PDF/A-4 باستخدام PdfAManager الخاص بإصدار Premium، ثم تشغيل veraPDF واستخدام حُكمه بوابةً للبناء. يكتب NextPDF العناصر المُنتَجة، أما المُدقِّق فهو من يقرّر المطابقة. يتّبع التدفّق examples/32-pdfa4-icc.php.
المتطلبات المسبقة
قسم بعنوان «المتطلبات المسبقة»- Core مُثبَّت:
composer require nextpdf/core:^3. - إصدار Premium مُثبَّت:
composer require nextpdf/pro. PDF/A-4 ميزة ضمن فئة Premium (سجلّ قرار معماري ADR-011). من دون إصدار Premium، يطرحenablePdfA()الاستثناءInvalidConfigExceptionمع مسار للترقية. - veraPDF على
PATHمن أجل خطوة البوابة.
الوصفة
قسم بعنوان «الوصفة»- افحص سجلّ القدرات بحثًا عن
security.pdfaكي يعرض التثبيت المقتصر على Core رسالةً واضحةً بدلًا من تتبُّع المكدّس. - أنشئ المستند، ثم استدعِ
enablePdfA()قبل إضافة المحتوى. - عيّن البيانات الوصفية واكتب المحتوى. لا تستدعِ
setEncryption()؛ إذ يحظر PDF/A المفتاحEncrypt. - احفظ المستند. أثناء
save()، يجدولPdfAManagerOutputIntent، وملف تعريف الاتحاد الدولي للألوان (ICC) المضمَّن، ومخططات امتدادات منصّة البيانات الوصفية القابلة للتوسيع (XMP). - شغّل
verapdf --flavour 4على المخرجات. أفشِل البناء إذا خرج برمز غير صفري. حُكم المُدقِّق هو البوابة.
مثال كامل
قسم بعنوان «مثال كامل»<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Core\Document;use NextPDF\Exception\InvalidConfigException;use NextPDF\Support\CapabilityRegistry;
$out = __DIR__ . '/archival.pdf';
// Step 1 — probe before activating a Premium-gated feature.$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);}
try { $doc = Document::createStandalone();
// Step 2 — enable PDF/A-4 before content. Defaults to PdfA4. $doc->enablePdfA();
// Step 3 — metadata and content. No setEncryption() on a PDF/A document. $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);
// Step 4 — save. PdfAManager emits OutputIntent + ICC + XMP here. $doc->save($out);} catch (InvalidConfigException $e) { fwrite(STDERR, "PDF/A-4 activation failed: {$e->getMessage()}\n"); exit(1);}
// Step 5 — the gate. veraPDF, not the library, asserts conformance.$exitCode = 0;$output = [];exec('verapdf --flavour 4 ' . escapeshellarg($out), $output, $exitCode);
if ($exitCode !== 0) { fwrite(STDERR, "veraPDF FAILED — output is not PDF/A-4 conforming\n"); fwrite(STDERR, implode("\n", $output) . "\n"); exit(1);}
echo "veraPDF PASS — archival.pdf is reported PDF/A-4 conforming by veraPDF\n";المخرجات المتوقَّعة
قسم بعنوان «المخرجات المتوقَّعة»عند نجاح veraPDF:
veraPDF PASS — archival.pdf is reported PDF/A-4 conforming by veraPDFعند غياب حزمة Premium، يخرج البرنامج النصي برمز غير صفري مع رسالة قابلة للتنفيذ، ولا يكتب أي ملف.
الحالات الحدّية
قسم بعنوان «الحالات الحدّية»- بوابة Premium. في التثبيت المقتصر على Core، يطرح
enablePdfA()الاستثناءInvalidConfigExceptionالذي يذكرsecurity.pdfaويقدّم الإجراء العلاجيcomposer require nextpdf/pro. افحص السجلّ أولًا. - تعارض التشفير. يؤدّي استدعاء
setEncryption()أوuseAesGcm()أوsetPublicKeyEncryption()على مستند PDF/A إلى إطلاق استثناء عدم توافق في أيٍّ من ترتيبَي الاستدعاء. يحظر PDF/A مفتاح المُذيَّلEncrypt. - صيغة المطابقة. مرّر
PdfAVersionإلىenablePdfA()للحصول على4eأو4f. القيمة الافتراضية هي4. - البوابة هي المُدقِّق، لا المحرّك. نجاح
save()يعني أن NextPDF أصدر العناصر المُنتَجة التي يتطلّبها PDF/A-4. لكنه لا يُثبت المطابقة بحد ذاته. veraPDF هو من يؤكّد المطابقة؛ وتجعل هذه الوصفة حُكمه بوابةً. لا تُصرّح بأن أي ملف مطابق لـ PDF/A-4 حتى ينجح المُدقِّق.
المطابقة
قسم بعنوان «المطابقة»| العبارة | المواصفة | البند | reference_id |
|---|---|---|---|
| يجوز لملف PDF/A-4 أن يحدّد خصائص ألوانه عبر OutputIntent خاص بـ PDF/A يشير إلى ملف تعريف مضمَّن للاتحاد الدولي للألوان (ICC). ويمكن بدلًا من ذلك تحديد الألوان المستقلة عن الجهاز مباشرةً؛ §6.2.4.1. | ISO 19005-4 | §6.2.3 | |
| التشفير محظور في PDF/A-4. | ISO 19005-4 | §6.6.4 | |
| PDF/A-4 يحمل تعريف pdfaid في البيانات الوصفية لمنصّة البيانات الوصفية القابلة للتوسيع (XMP). | ISO 19005-4 | §6.7.5 |
المُدقِّق هو من يؤكّد المطابقة. تُنتج المكتبة مخرجات يُقصد بها أن تكون مطابِقة، والمُدقِّق هو من يقرّر.