PDF/A-4 arşivleme çıktısı oluşturun
Bir bakışta
“Bir bakışta” başlıklı bölümPro PdfAManager ile PDF/A-4 (Uluslararası Standardizasyon Örgütü (ISO) 19005-4) arşivleme çıktısı oluşturmak için bu reçeteyi kullanın. Kaydetme sırasında NextPDF, OutputIntent’i, gömülü Uluslararası Renk Konsorsiyumu (ICC) profilini ve tanımlama meta verilerini yazar. NextPDF, uygunluğu hedefleyen bir çıktı üretir; uygunluğu bağımsız bir doğrulayıcı belirler. Reçete examples/32-pdfa4-icc.php dosyasını izler.
Kurulum
“Kurulum” başlıklı bölümcomposer require nextpdf/core:^3composer require nextpdf/proPDF/A-4, Pro katmanına özgü bir özelliktir. Yalnızca Core kurulumunda enablePdfA(), InvalidConfigException fırlatır. İleti, eksik security.pdfa yeteneğini adlandırır ve composer require nextpdf/pro çözümüne yönlendirir. Doğrulama için PATH üzerinde bir PDF/A doğrulayıcısı gerekir. Örnekler, veraPDF’yi --flavour 4 ile kullanır.
Kavramsal genel bakış
“Kavramsal genel bakış” başlıklı bölümPDF/A-4, ISO 32000-2 (PDF 2.0) üzerine kurulu ISO 19005-4 arşivleme profilidir. Uygun bir dosyada renk davranışı belirlenimlidir ve dosya kendi içinde bağımsızdır. Gömülü bir ICC hedef profiline başvuran bir OutputIntent bildirir; böylece renk, harici kaynaklar olmadan yeniden üretilir (§6.2.3). Her yazı tipi programı gömülüdür (§6.2.10.4.1). Belge, Genişletilebilir Meta Veri Platformu (XMP) içinde pdfaid tanımlama meta verilerini taşır (§6.7.3). Dosya şifrelenmiş değildir (§6.6.4 — PDF/A, Encrypt trailer anahtarını yasaklar).
NextPDF, PDF/A’yı tipli ConformanceMode enum’u ile modeller. enablePdfA(), Pro PdfAManager nesnesini örnekler ve varsayılan olarak ConformanceMode::PdfA4 kullanır. save() sırasında yönetici, OutputIntent’i, ICC akışını ve XMP uzantı şemalarını yazar. pdfaPart() ve pdfaConformanceLetter() erişimcileri, pdfaid:part / pdfaid:conformance meta verilerini seçilen türevle (taban 4, 4e, 4f) hizalı tutar. Taban profili, bölümün gerektirdiği gibi hiçbir pdfa:conformance harfi yaymaz.
API yüzeyi
“API yüzeyi” başlıklı bölümUygulama programlama arabirimi (API) yüzeyi PHPDoc’tan oluşturulur. Şu temel giriş noktalarını kullanın:
\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|nullveConformanceMode::pdfaConformanceLetter(): string
Kod örneği — Hızlı başlangıç
“Kod örneği — Hızlı başlangıç” başlıklı bölüm<?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";Kod örneği — Üretim
“Kod örneği — Üretim” başlıklı bölümKendi içinde bağımsız olan bu programı bir test koşum ortamında kullanın. Üretimde doğrulayıcının kararını derleme geçidi yapın. Başarılı bir save(), NextPDF’in yapıları yazdığını kanıtlar; uygunluğu yalnızca doğrulayıcı kanıtlar.
<?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";Üzerinde nextpdf/pro kurulu olan ve dosyayı uygun olarak bildiren bir verapdf bulunan bir ana makinede beklenen standart çıktı (STDOUT) şudur:
veraPDF PASS — archival.pdf is reported PDF/A-4 conformingYalnızca Core bulunan bir ana makinede program, standart hataya (STDERR) PDF/A-4 requires nextpdf/pro. Run: composer require nextpdf/pro yazdıktan sonra sıfırdan farklı bir kodla çıkar. verapdf bir sorun bildirirse program, veraPDF FAILED — output is not PDF/A-4 conforming yazdıktan sonra sıfırdan farklı bir kodla çıkar. İfade, kararı veraPDF’ye atfeder; NextPDF, PDF/A-4 uygunluğunu öne sürmez.
Sınır durumları ve dikkat edilecek noktalar
“Sınır durumları ve dikkat edilecek noktalar” başlıklı bölüm- Pro geçidi. Yalnızca Core kurulumunda
enablePdfA(),InvalidConfigExceptionfırlatır. İleti,security.pdfaöğesini vecomposer require nextpdf/proçözümünü adlandırır. Anlaşılır bir operatör iletisi göstermek için önce kayıt defterini yoklayın. - Şifreleme çakışması. Bir PDF/A belgesinde
setEncryption(),useAesGcm()veyasetPublicKeyEncryption()çağırırsanız NextPDF, çağrı sırasından bağımsız olarak bir uyumsuzluk istisnası fırlatır. PDF/A-4,Encrypttrailer anahtarını yasaklar (ISO 19005-4 §6.6.4). - Uygunluk türevi. Pro
PdfAVersionöğesinienablePdfA()öğesine geçirerek4e(mühendislik, 3D) veya4f(dosya ekleri) elde edin. Taban profili hiçbirpdfa:conformanceharfi yaymaz;4e/4f,E/Fdeğerini ayarlar.ConformanceModeerişimcisi,pdfaid:partöğesini tutarlı tutar. - Etiketleme bağımsızdır. PDF/A-4 tabanı, etiketlemeyi isteğe bağlı kabul eder. Hem erişilebilir hem de arşivlenebilir bir teslimat için etiketli kipi ve PDF/A’yı ayrı ayrı etkinleştirin; PDF/UA-2 reçetesine bakın.
- Geçit doğrulayıcıdır. Başarılı bir
save(), yapıların yayıldığı anlamına gelir; dosyanın uygun olduğu anlamına gelmez. Doğrulayıcı geçene kadar PDF/A-4 uygunluğunu belirtmeyin.
Performans
“Performans” başlıklı bölümOutputIntent, bir ICC profil akışı (sRGB için birkaç yüz KB) ile birlikte XMP paketini ekler. Belge, base-14 dışı yazı tipleri kullandığında boyutu yazı tipi gömme belirler. Tipik arşiv belgeleri için reçete, 2000 ms / 128 MB bütçesi içinde kalır. Anlamsal yeniden üretilebilirlik profili geçerlidir: doğrulayıcı odaklı bir teslimatı ham baytlar yerine yapısal soyut sözdizimi ağacı (AST) ve meta veriler üzerinden karşılaştırın.
Güvenlik notları
“Güvenlik notları” başlıklı bölümVeri konumlandırması ve PII azaltımları
“Veri konumlandırması ve PII azaltımları” başlıklı bölümArşivleme çıktısı, tasarım gereği uzun ömürlü ve kendi içinde bağımsızdır. İçindeki tüm kişisel veriler, arşivin ömrü boyunca kalıcı olur. Gömülü ICC profili ve meta veriler dosyayla birlikte taşınır. Arşivlemeden önce saklama ve en aza indirme ilkelerini uygulayın. PDF/A-4, redaksiyon anlamına gelmez.
Güvenli telemetri ve günlük temizleme
“Güvenli telemetri ve günlük temizleme” başlıklı bölümReçete yalnızca sabit bir ilerleme satırı yazar. veraPDF çıktısı içerik parçaları içerebilir; hassas içerikli belgelerde doğrulayıcı günlüklerini paylaşılan günlük havuzlarının dışında tutun.
Tehdit modeli
“Tehdit modeli” başlıklı bölümPDF/A-4, bir arşiv doğruluğu profilidir; bütünlük veya özgünlük denetimi değildir. Dosyayı imzalamaz ya da kurcalamayı açığa çıkarmaz. Kaynağın doğrulanması önemliyse bunu bir imzayla birleştirin. İmzayı ayrı bir reçete kapsar. Şifreleme, belirtim gereği PDF/A ile karşılıklı olarak dışlayıcıdır.
FIPS kipi davranışı
“FIPS kipi davranışı” başlıklı bölümBu reçete hiçbir kriptografik işlem gerçekleştirmez. Federal Bilgi İşleme Standartları (FIPS) kipi, bu reçetenin davranışını değiştirmez. PDF/A-4 şifrelemeyi yasaklar; bu nedenle hiçbir şifre seçilmez.
Uygunluk
“Uygunluk” başlıklı bölüm| İfade | Belirtim | Madde | reference_id |
|---|---|---|---|
| PDF/A-4, gömülü bir ICC profiline başvuran bir OutputIntent gerektirir. | ISO 19005-4 | §6.2.3 | |
| Renk, çıktı hedef profili aracılığıyla aygıttan bağımsızdır. | ISO 19005-4 | §6.2.4.3 | |
| Her yazı tipi programı gömülüdür. | ISO 19005-4 | §6.2.10.4.1 | |
| Belge, XMP içinde pdfaid tanımlamasını taşır. | ISO 19005-4 | §6.7.3 | |
| PDF/A-4’te şifreleme yasaktır. | ISO 19005-4 | §6.6.4 | |
| Uygunluğa üretici değil, bir doğrulayıcı karar verir. | ISO 19005-4 | §6.7.3 |
NextPDF, PDF/A-4’e uygunluğu hedefleyen bir çıktı üretir. Destek, uygunluk değildir; test edilmiş bir profil, sertifikasyon değildir. Bu reçete uygunluğu öne sürmez; bu belirlemeyi veraPDF gibi bağımsız bir doğrulayıcı yapar. Doğrulayıcının kararını derleme geçidi yapın.