PDF/A-4 çıktısı üretin ve veraPDF kararını derleme kapısı yapın
Bir bakışta
“Bir bakışta” başlıklı bölümBu nasıl yapılır kılavuzu, Premium PdfAManager ile Portable Document Format/Archive (PDF/A-4) çıktısının nasıl oluşturulacağını, veraPDF’nin nasıl çalıştırılacağını ve kararının derleme kapısı olarak nasıl kullanılacağını gösterir. NextPDF gerekli yapıtları yazar; uygunluk kararını doğrulayıcı verir. Akış, examples/32-pdfa4-icc.php dosyasındaki örneği izler.
Ön koşullar
“Ön koşullar” başlıklı bölüm- Core kurulmuş olmalı:
composer require nextpdf/core:^3. - Premium kurulmuş olmalı:
composer require nextpdf/pro. PDF/A-4, bir Premium katmanı özelliğidir (Architecture Decision Record ADR-011). Premium olmadanenablePdfA(), yükseltme yolunu belirten birInvalidConfigExceptionfırlatır. - Kapı adımı için
PATHüzerinde veraPDF bulunmalı.
- Yetenek kayıt defterinde
security.pdfaöğesini yoklayın; böylece yalnızca Core içeren bir kurulum, yığın izlemesi yerine açık bir ileti gösterir. - Belgeyi oluşturun, ardından içerik eklemeden önce
enablePdfA()çağrısını yapın. - Üst verileri ayarlayın ve içeriği yazın.
setEncryption()çağrısını yapmayın; PDF/A,Encryptanahtarını yasaklar. - Belgeyi kaydedin.
save()sırasındaPdfAManager, OutputIntent’i, gömülü International Color Consortium (ICC) profilini ve Extensible Metadata Platform (XMP) uzantı şemalarını yazar. - Çıktı üzerinde
verapdf --flavour 4komutunu çalıştırın. Sıfırdan farklı bir kodla sonlanırsa derlemeyi başarısız sayın. Kapı, doğrulayıcının verdiği karardır.
Tam örnek
“Tam örnek” başlıklı bölüm<?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";Beklenen çıktı
“Beklenen çıktı” başlıklı bölümveraPDF başarılı olduğunda:
veraPDF PASS — archival.pdf is reported PDF/A-4 conforming by veraPDFPremium paketi eksik olduğunda betik, sıfırdan farklı bir kodla ve eyleme geçirilebilir bir iletiyle sonlanır; dosya yazmaz.
Uç durumlar
“Uç durumlar” başlıklı bölüm- Premium kapısı. Yalnızca Core içeren bir kurulumda
enablePdfA()birInvalidConfigExceptionfırlatır; bu özel durumsecurity.pdfaöğesini belirtir ve çözüm olarakcomposer require nextpdf/prokomutunu verir. Önce kayıt defterini yoklayın. - Şifreleme çakışması. Bir PDF/A belgesinde
setEncryption(),useAesGcm()veyasetPublicKeyEncryption()çağrısının yapılması, bu çağrıların herhangi biri sırasında bir uyumsuzluk özel durumu yükseltir. PDF/A,Encryptsonlandırıcı anahtarını yasaklar. - Uygunluk türü. Bir
PdfAVersiondeğerinienablePdfA()çağrısına4eveya4fiçin geçirin. Varsayılan değer4’tür. - Kapı motor değil, doğrulayıcıdır. Başarılı bir
save()çağrısı, NextPDF’in PDF/A-4’ün gerektirdiği yapıtları yazdığı anlamına gelir. Bu, tek başına uygunluğu kanıtlamaz. Uygunluğu veraPDF doğrular; bu tarif onun kararını kapı hâline getirir. Doğrulayıcı başarılı olana kadar bir dosyanın PDF/A-4 uyumlu olduğunu belirtmeyin.
Uygunluk
“Uygunluk” başlıklı bölüm| İfade | Belirtim | Madde | reference_id |
|---|---|---|---|
| Bir PDF/A-4 dosyası renk özelliklerini, gömülü bir International Color Consortium (ICC) profiline başvuran bir PDF/A OutputIntent ile belirtebilir. Aygıttan bağımsız renk bunun yerine doğrudan belirtilebilir; §6.2.4.1. | ISO 19005-4 | §6.2.3 | |
| PDF/A-4’te şifreleme yasaktır. | ISO 19005-4 | §6.6.4 | |
| PDF/A-4, pdfaid tanımlamasını Extensible Metadata Platform (XMP) üst verisinde taşır. | ISO 19005-4 | §6.7.5 |
Uygunluğu doğrulayıcı doğrular. Kitaplık, uygun olması amaçlanan çıktıyı üretir; kararı doğrulayıcı verir.