İçeriğe geç

ISO 19005-4 (PDF/A-4): NextPDF özellik eşleştirmesi

International Organization for Standardization (ISO) 19005-4:2020, PDF/A-4 olarak bilinen Portable Document Format (PDF) 2.0 arşivleme profilidir. Bu sayfa, söz konusu profili desteği olduğundan fazla göstermeden NextPDF’e eşler: Core’un ne ürettiğini, nextpdf/pro uzantısının ne eklediğini ve NextPDF’in açıkça neleri kapsamadığını gösterir. NextPDF, PDF/A-4 ile ilgili yapıları üretir; bir dosyanın uyumlu olduğunu ancak bir doğrulayıcı ileri sürebilir.

Terminal window
composer require nextpdf/core:^3
# PDF/A-4 file authoring (OutputIntent + ICC + XMP) requires:
# composer require nextpdf/pro

ISO 19005-4:2020, ISO 32000-2:2020 (PDF 2.0) üzerine kuruludur; PDF/A-2 ve PDF/A-3 ise ISO 32000-1:2008 (PDF 1.7) üzerine kuruludur. NextPDF, bu soy ağacı farkını ConformanceMode::requiresPdf17() içinde yakalar. Bu yöntem, her PDF/A-4 durumu için false, PDF/A-2 ve PDF/A-3 için ise true döndürür.

PDF/A-4, üç uygunluk biçimi tanımlar. Temel profil, bir pdfa:conformance harfi kullanmaz. PDF/A-4e (Ek B, mühendislik / 3B içerik), bunu pdfa:conformance = E olarak ayarlar. PDF/A-4f (Ek A, gömülü dosyalar), bunu pdfa:conformance = F olarak ayarlar. ISO 19005-4:2020 §6.7.3, PDF/A tanımlama şemasını Association for Intelligent Information Management (AIIM) ad alanında belirtir. Buna göre, ne PDF/A-4e ne de PDF/A-4f ile uyumlu olan bir dosya hiçbir pdfa:conformance girdisi sunmaz. NextPDF, bu davranışı ConformanceMode::pdfaConformanceLetter() içinde birebir yansıtır: PdfA4 boş dizge döndürür, PdfA4e E döndürür, PdfA4f F döndürür.

Kritik sürüm sınırı, PDF/A-4 dosya oluşturma aşamasındadır. OutputIntent sözlüğü, gömülü International Color Consortium (ICC) profili, Extensible Metadata Platform (XMP) uzantı şeması, yazı tipi alt kümesi güvenceleri ve şifreleme yasağı Enterprise PdfAManager tarafından uygulanır. Enterprise PdfAManager, nextpdf/pro uzantısında sunulur. Yalnızca Core kurulumunda, Document::enablePdfA(), InvalidConfigException oluşturur; çünkü security.pdfa yeteneği kayıtlı değildir. Çalıştırılabilir örnek (examples/32-pdfa4-icc.php), bunu yetenek kaydını denetleyerek ve bir yığın izi yerine açık bir iletiyle kontrollü biçimde geri düşerek gösterir.

Bu nedenle, Core’daki PDF/A-4 yüzeyi tek başına yalnızca ayırt edicidir. NextPDF, bir belgenin hangi PDF/A-4 türevini bildirdiğini kaydeder. NextPDF, şemanın tanımladığı pdfaid:part = 4 / pdfa:conformance işaretçilerini üretir. Tam bir PDF/A-4 dosyası üretmek ve uyumlu olduğunu doğrulamak ayrı adımlardır. İlk adım nextpdf/pro gerektirir. İkinci adım veraPDF gerektirir.

YüzeySürümNeyi sağladığı
ConformanceMode::PdfA4 / PdfA4e / PdfA4fcoreTürev ayırt edicisi
ConformanceMode::pdfaPart()4coreISO 19005 bölüm numarası
ConformanceMode::pdfaConformanceLetter()'' / 'E' / 'F'core§6.7.3 uygunluk harfi
ConformanceMode::requiresPdf17()falsecorePDF 2.0 soy ağacı kapısı
Document::enablePdfA()proOutputIntent + ICC + XMP oluşturma; Core’da InvalidConfigException oluşturur
<?php
declare(strict_types=1);
use NextPDF\Conformance\ConformanceMode;
// Core: introspect the declared PDF/A-4f contract.
$mode = ConformanceMode::PdfA4f;
$mode->pdfaPart(); // 4
$mode->pdfaConformanceLetter(); // 'F' (ISO 19005-4:2020 §6.7.3 / Annex A)
$mode->requiresPdf17(); // false (PDF/A-4 is PDF 2.0 lineage)
<?php
declare(strict_types=1);
use NextPDF\Core\Document;
use NextPDF\Exception\InvalidConfigException;
use NextPDF\Support\CapabilityRegistry;
// PDF/A-4 file authoring requires the Premium extension. Probe first so a
// Core-only install gets a clear rationale, not a stack trace.
$registry = CapabilityRegistry::getInstance();
if (!$registry->get('security.pdfa')->isAvailable()) {
throw new InvalidConfigException(
configKey: 'security.pdfa',
givenValue: 'Core-only install',
expectedType: 'nextpdf/pro extension (Enterprise PdfAManager)',
);
}
$doc = Document::createStandalone();
$doc->enablePdfA(); // Emits OutputIntent + ICC + pdfaid XMP (Premium).
// … write content …
$doc->save(__DIR__ . '/out/archive-a4.pdf');
// The file now CARRIES PDF/A-4 structures. Conformance is still unproven
// until veraPDF asserts it:
//
// verapdf --flavour 4 out/archive-a4.pdf
  • Core bir PDF/A-4 dosyası oluşturamaz. enablePdfA() Core’da istisna oluşturur. Core yalnızca ayırt ediciyi ve XMP işaretçilerini sunar.
  • Temel PDF/A-4 hiçbir pdfa:conformance üretmez. ISO 19005-4:2020 §6.7.3 uyarınca, harfi yalnızca PDF/A-4e ve PDF/A-4f ayarlar. ConformanceMode::PdfA4 tasarım gereği boş dizge döndürür.
  • PDF 1.7 değil, PDF 2.0 soy ağacıdır. Sık yapılan bir hata, %PDF-1.7 bekleyen bir PDF/A-3 işlem hattını yeniden kullanmaktır. PDF/A-4, PDF 2.0’dır; requiresPdf17() tüm PDF/A-4 durumları için false döndürür.
  • ICC doğrulaması Premium kapsamındadır. ISO 19005-4:2020 §6.2.2 OutputIntent ICC doğrulaması (acsp sihirli değeri, etiket tablosu, D50 beyaz noktası) Core tarafından değil, Enterprise PdfAManager tarafından gerçekleştirilir.
  • Kitaplık dosyayı sertifikalandırmaz. PdfA4f ayarlamak ve işaretçileri üretmek, çıktıyı geçerli bir PDF/A-4f dosyası yapmaz. veraPDF ile doğrulayın.

Core PDF/A-4 yüzeyi, yalnızca değer türü iç gözlemi sağlar: enum match gönderimi O(1)‘dir ve bellek ayırma yapmaz. Premium oluşturma yolu, yazma sırasında OutputIntent ve ICC paketini ekler. Maliyeti, yazıcı bütçesi içinde ele alınan gömülü profil boyutundan gelir. veraPDF doğrulaması üretim sırasında değil, ayrı bir kanalda çalışır.

PDF/A-4 şifrelemeyi yasaklar. Enterprise PdfAManager, şifreleme yasağı değişmezini uygular ve bu denetimi enablePdfA() ile ilişkili sırada çalıştırır; böylece bir çağıran, Advanced Encryption Standard in Galois/Counter Mode (AES-GCM) ile arşivleme modunu yanlışlıkla birleştiremez. Core’un HasSecurity::enablePdfA() içindeki ön koruması, herhangi bir bayt yazılmadan önce desteklenmeyen birleşimi reddeder. Arşivleme işlem hattı ayrıntıları için proje tehdit modeline bakın.

Bu sayfa bir uygunluk iddiası değil, bir özellik eşlemesidir.

ISO 19005-4:2020 alanıMaddeNextPDF kapsamıDurum
Türev tanımlama şeması§6.7.3ConformanceMode, pdfaid:part = 4 ve pdfa:conformance harfini üretirBeyan edildi (Core; tests/Unit/Conformance/ içinde birim testi yapıldı)
PDF 2.0 soy ağacı kapısı§6.7.3 / temelrequiresPdf17() tüm PDF/A-4 durumları için false döndürürDoğrulandı (birim testi yapıldı)
OutputIntent + gömülü ICC§6.2.2Enterprise PdfAManager (nextpdf/pro)Yalnızca Premium (Core değil)
XMP uzantı şeması, yazı tipi alt kümeleme, şifreleme yasağı§6 / Ek A/BEnterprise PdfAManager (nextpdf/pro)Yalnızca Premium (Core değil)
Uygunluk belirlemeMadde 5NextPDF tarafından gerçekleştirilmez — veraPDFAçıkça kapsam dışında

Destek, uygunluk anlamına gelmez — ve bu sayfa ikisini bilinçli olarak ayırır. (a) NextPDF Core, ISO 19005-4:2020 §6.7.3’ün türev tanımlaması için tanımladığı yapıları üretir; bu, tests/Unit/Conformance/ConformanceModePdfAVariantTest.php (geçen) ile kanıtlanan bir uygulamadır. (b) Bir dosyanın PDF/A-4 ile uyumlu olması, ISO 19005-4:2020 Madde 5 uyarınca yalnızca bir doğrulayıcının ileri sürebileceği ayrı bir iddiadır. Madde 5, uygunluğun normatif gereksinimlere göre asıl belirlemesini bir denetim aracının gerçekleştirdiğini belirtir. NextPDF, (a) iddiasında bulunur. NextPDF, (b) iddiasında bulunmaz. veraPDF ile doğrulayın (verapdf --flavour 4 … veya oracle düzeneği için php oracle/run.php — yalnızca veraPDF ikili dosyası mevcut olduğunda çalışan, isteğe bağlı bir kapı).

“PDF/A-4 uyumlu”, “uyumlu (byte-identical değil)” ve “PDF/A-4 sertifikalı” ifadeleri bu sayfadan bilinçli olarak çıkarılmıştır. NextPDF, PDF/A-4 ile ilgili yapıları üretir; uyumlu bir dosya garantisi vermez.

Alıntılar, NextPDF uygunluk derlemine göre başka sözcüklerle ifade edilmiştir. Tam 64 karakterlik reference_id özetleri, sayfa ön bilgisinde ve docs/public/modules/core/_normative-evidence-conf.md içinde kaydedilir.