İçeriğe geç

PDF 2.0 temel düzeyi: NextPDF'in uyguladığı ISO 32000-2 maddeleri

Sı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.

Terminal window
composer require nextpdf/core:^3

PDF 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.

Her 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 /ID tanımlayıcısı da buna dâhildir. /ID dosyaya ö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 yerine reproducibility_profile: structural kullanılmasının nedeni budur.
  • Mantıksal yapı — §14.7.2: etiketli kip etkinleştirildiğinde PDF/UA-2 profilinin dayandığı StructTreeRoot temel 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.

SimgeEtki
ConformanceMode::PlainVarsayılan — kısıtlanmamış PDF 2.0 çıktısı.
ConformanceMode::requiresPdf17(): boolPDF 2.0 kipleri için False; yazıcı bir %PDF-2.0 başlığı üretir.
NextPDF\Compliance\Validator\ArlingtonValidatorArlington PDF modeline karşı dilbilgisi çapraz denetimi (doğrulamaya yardımcı olur).
<?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";

Ü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.

  • /ID dosyaya özgüdür. Fragmanda /ID değeri, /CreationDate değ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::Plain bir PDF/A değildir. Herhangi bir OutputIntent veya pdfaid iş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.

Temel 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.

PDF 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.

SavBelirtimMaddereference_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.