PDF 2.0 temel düzeyi: NextPDF'in uyguladığı ISO 32000-2 maddeleri
Bir bakışta
“Bir bakışta” başlıklı bölümSınır bildirimi. NextPDF anılan maddeleri uygular; tam ISO 32000-2 uyumluluğu genel bir sav olarak öne sürülmez.
ISO 32000-2:2020, PDF 2.0 temel standardıdır. NextPDF Core varsayılan olarak kısıtlanmamış PDF 2.0 üretir (ConformanceMode::Plain): çıktıda bir %PDF-2.0 başlığı, bir belge kataloğu, bir çapraz başvuru yapısı ve uyumlu bir fragman bulunur. Bu sayfa, NextPDF’in uyguladığı temel düzey maddelerini ve açık sınırını belgeler. Kitaplık, anılan maddeleri uygular. Genel bir “tümüyle ISO 32000-2 uyumlu” savında bulunmaz. Uyumlu bir dosya, uyumlu bir okuyucunun standart kapsamında işleyebildiği dosyadır. Bu, bir kitaplık bayrağı değil, bir doğrulayıcının verdiği karardır.
Kurulum
“Kurulum” başlıklı bölümcomposer require nextpdf/core:^3PDF 2.0 temel düzey çıktısı Core’un varsayılanıdır; bir profil çağrısı yapmanız gerekmez. Varsayılan ayırt edici ConformanceMode::Plain değeridir. PDF/A-4, PDF/UA-2, PDF/X ve ZUGFeRD profilleri, bu temel düzeyin üzerine katmanlanmış kısıtlı alt kümelerdir.
Kavramsal genel bakış
“Kavramsal genel bakış” başlıklı bölümHer NextPDF belgesi, herhangi bir profil uygulanmadan önce bir PDF 2.0 dosyası olarak başlar. Yazıcı, ISO 32000-2’nin uyumlu bir dosyaya yüklediği yapısal yükümlülükleri karşılar:
- Belge kataloğu — §7.7.2: fragmandaki
/Rootöğesinin başvurduğu kök nesne; her çıktıda bulunur. - Çapraz başvuru yapısı — §7.5.8: her nesnenin yerini belirleyen bir çapraz başvuru tablosu veya akışı.
- Fragman — §7.5.5: uyumlu bir dosyanın taşıması gereken fragman sözlüğü; dosya
/IDtanımlayıcısı da buna dâhildir./IDdosyaya özgüdür ve karşılaştırma için normalleştirme sırasında çıkarılır. Çok nesneli çıktıların çoğunda bit düzeyinde karşılaştırma yerinereproducibility_profile: structuralkullanılmasının nedeni budur. - Mantıksal yapı — §14.7.2: etiketli kip etkinleştirildiğinde PDF/UA-2 profilinin dayandığı
StructTreeRoottemel düzeyi. - Sürüm uzantısı — §7.12: bir geliştirici uzantısı bildirildiğinde kullanılan Extensions sözlüğü / geliştirici ön eki düzeneği.
NextPDF bu maddeleri uygular. Tam bir ISO 32000-2 uyumluluk değerlendirmesi yapmaz. Bu kararı vermek için Arlington dilbilgisi denetleyicisi veya veraPDF gibi harici bir doğrulayıcı kullanın. NextPDF\Compliance, yapısal uyuşmazlıkları ortaya çıkaran bayt akışı çapraz denetimlerini (ArlingtonValidator) içerir. Bu denetimler doğrulamaya yardımcı olur; sertifika yerine geçmez.
API yüzeyi
“API yüzeyi” başlıklı bölüm| Simge | Etki |
|---|---|
ConformanceMode::Plain | Varsayılan — kısıtlanmamış PDF 2.0 çıktısı. |
ConformanceMode::requiresPdf17(): bool | PDF 2.0 kipleri için False; yazıcı bir %PDF-2.0 başlığı üretir. |
NextPDF\Compliance\Validator\ArlingtonValidator | Arlington PDF modeline karşı dilbilgisi çapraz denetimi (doğrulamaya yardımcı olur). |
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;
$out = getenv('NEXTPDF_COOKBOOK_OUTPUT') ?: __DIR__ . '/baseline.pdf';
$doc = Document::createStandalone(); // ConformanceMode::Plain — PDF 2.0$doc->setTitle('PDF 2.0 baseline');$doc->writeHtml('<h1>Hello PDF 2.0</h1><p>Unconstrained baseline output.</p>');$doc->save($out);
echo "Wrote {$out} (%PDF-2.0). Validate structure with an external checker.\n";Kod örneği — üretim
“Kod örneği — üretim” başlıklı bölümÜretimde, temsilî çıktı üzerinde sürekli tümleştirme (CI) içinde harici bir yapısal doğrulayıcı (Arlington / veraPDF) çalıştırın ve CI geçişini rapora göre denetleyin. Kitaplık yapıyı üretir; uyumlu olup olmadığını denetleyici belirler. Kitaplık, genel bir uyumluluk savında bulunmaz.
Sınır durumları ve dikkat edilecek noktalar
“Sınır durumları ve dikkat edilecek noktalar” başlıklı bölüm/IDdosyaya özgüdür. Fragmanda/IDdeğeri,/CreationDatedeğeri veya yazı tipi alt küme ön ekleri içeren temel düzey çıktısı bayt düzeyinde kararlı değildir. Karşılaştırmayı ham bir sha256 ile değil, yapısal profille (qpdf-normalize) yapın.- Plain ≠ arşivleme.
ConformanceMode::Plainbir PDF/A değildir. Herhangi bir OutputIntent veyapdfaidişaretçisi taşımaz. Onu arşivleme amaçlı saymayın. - Uygular ≠ tümüyle uyumlu. Bu sayfa, NextPDF’in uyguladığı maddeleri listeler. Her belge için her ISO 32000-2 maddesinin karşılandığını belirtmez. Bu, belge başına verilen bir doğrulayıcı kararıdır.
- Uzantılar ad alanı kullanır. Bir geliştirici uzantısı, kayıtlı bir ön ekle birlikte §7.12 Extensions sözlüğünü kullanır. Ön eki olmayan özel bir anahtar, temel düzeyden bir sapmadır.
Başarım
“Başarım” başlıklı bölümTemel düzey üretimi motorun çekirdek yoludur. Bütçe, tipik bir belge için duvar saati süresi ≤ 1500 ms ve en yüksek bellek ≤ 64 MB’dir. Temel düzey yazıcısı, geriye dönük destek matrisini (PHP 8.1–8.4) destekler.
Güvenlik notları
“Güvenlik notları” başlıklı bölümPDF 2.0 temel düzey çıktısı, siz açıkça eklemediğiniz sürece hiçbir şifreleme veya imza taşımaz. Şifreleme gizlilik sağlar ve ayrı bir tarifte ele alınır. ISO izin bitleri erişim denetimi değildir; okuyucunun işbirliğine dayanır. Temel düzey hiçbir güvenlik güvencesi vermez.
Uyumluluk
“Uyumluluk” başlıklı bölüm| Sav | Belirtim | Madde | reference_id |
|---|---|---|---|
| Uyumlu bir PDF 2.0 dosyası, uyumlu bir fragman / dosya yapısı taşımalıdır. | ISO 32000-2 | §7.5.5 | |
| Her nesnenin yeri, bir çapraz başvuru tablosu veya akışı aracılığıyla belirlenebilir. | ISO 32000-2 | §7.5.8 | |
| Dosyanın kök nesnesi olarak bir belge kataloğu bulunur. | ISO 32000-2 | §7.7.2 | |
| Uyumluluk, uyumlu yazıcılar ve okuyucular bağlamında tanımlanır. | ISO 32000-2 | §7.2 | |
| Sürüm uzantıları, Extensions sözlüğünü / geliştirici ön ekini kullanır. | ISO 32000-2 | §7.12 | |
| Etiketli çıktı, ISO 32000-2 mantıksal yapı temel düzeyinin üzerine kuruludur. | ISO 32000-2 | §14.7.2 |
Alıntılar, doğrulama derlemine işaret eden madde kimliği + reference_id göstergeleridir. Hiçbir standart metni yeniden üretilmez; NextPDF, maddeleri kendi sözcükleriyle özetler.