Baseline PDF 2.0: klausa ISO 32000-2 yang diterapkan NextPDF
Sekilas pandang
Bagian berjudul “Sekilas pandang”Pernyataan batasan. NextPDF menerapkan klausa yang dikutip; konformitas penuh terhadap ISO 32000-2 tidak dinyatakan sebagai klaim menyeluruh.
ISO 32000-2:2020 adalah standar dasar untuk PDF 2.0. NextPDF Core menghasilkan PDF 2.0 tanpa batasan secara default (ConformanceMode::Plain): header %PDF-2.0, katalog dokumen, struktur referensi-silang, dan trailer yang konform. Halaman ini mendokumentasikan klausa baseline yang diterapkan NextPDF beserta batasan eksplisitnya. Pustaka ini menerapkan klausa yang dikutip, tetapi tidak membuat klaim menyeluruh berupa “sepenuhnya konform terhadap ISO 32000-2”. Berkas yang konform adalah berkas yang dapat diproses oleh pembaca yang konform menurut standar. Penentuan tersebut dilakukan oleh verifikator, bukan oleh flag pustaka.
Instalasi
Bagian berjudul “Instalasi”composer require nextpdf/core:^3Keluaran baseline PDF 2.0 merupakan default di Core; Anda tidak perlu memanggil profil apa pun. ConformanceMode::Plain adalah diskriminator default. Profil PDF/A-4, PDF/UA-2, PDF/X, dan ZUGFeRD adalah subset terbatas yang dilapiskan di atas baseline ini.
Tinjauan konseptual
Bagian berjudul “Tinjauan konseptual”Setiap dokumen NextPDF dimulai sebagai berkas PDF 2.0 sebelum profil apa pun diterapkan. Penulis memenuhi kewajiban struktural yang ditetapkan ISO 32000-2 untuk berkas yang konform:
- Katalog dokumen — §7.7.2: objek root yang dirujuk oleh
/Rootdi trailer dan hadir di setiap keluaran. - Struktur referensi-silang — §7.5.8: tabel atau stream referensi-silang yang menentukan lokasi setiap objek.
- Trailer — §7.5.5: kamus trailer yang harus ada pada berkas yang konform, termasuk identifier
/IDberkas./IDbersifat unik per berkas dan dinormalisasi keluar dari perbandingan. Inilah sebabnya sebagian besar keluaran multi-objek menggunakanreproducibility_profile: structural, bukan bitwise. - Struktur logis — §14.7.2: ketika mode tagged diaktifkan, baseline
StructTreeRootmendukung profil PDF/UA-2. - Ekstensi versi — §7.12: ketika ekstensi pengembang dideklarasikan, digunakan mekanisme kamus Extensions / prefiks pengembang.
NextPDF menerapkan klausa-klausa ini. Pustaka ini tidak melakukan penilaian konformitas ISO 32000-2 secara penuh. Gunakan validator eksternal, seperti pemeriksa tata bahasa Arlington atau veraPDF, untuk penentuan tersebut. NextPDF\Compliance menyertakan pemeriksaan silang byte-stream (ArlingtonValidator) yang menandai ketidaksesuaian struktural. Pemeriksaan tersebut membantu verifikasi, tetapi bukan sertifikat.
Permukaan API
Bagian berjudul “Permukaan API”| Simbol | Efek |
|---|---|
ConformanceMode::Plain | Default — keluaran PDF 2.0 tanpa batasan. |
ConformanceMode::requiresPdf17(): bool | False untuk mode PDF 2.0; penulis menghasilkan header %PDF-2.0. |
NextPDF\Compliance\Validator\ArlingtonValidator | Pemeriksaan silang tata bahasa terhadap model PDF Arlington (membantu verifikasi). |
Contoh kode — Memulai cepat
Bagian berjudul “Contoh kode — Memulai cepat”<?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";Contoh kode — Produksi
Bagian berjudul “Contoh kode — Produksi”Untuk produksi, jalankan validator struktural eksternal (Arlington / veraPDF) di continuous integration (CI) terhadap keluaran representatif, lalu jadikan laporannya sebagai gerbang. Pustaka menghasilkan struktur; pemeriksa menentukan apakah struktur tersebut konform. Pustaka tidak membuat klaim konformitas menyeluruh.
Kasus tepi & jebakan
Bagian berjudul “Kasus tepi & jebakan”/IDbersifat unik per berkas. Keluaran baseline yang berisi/IDtrailer,/CreationDate, atau prefiks subset fon tidak stabil per byte. Bandingkan menggunakan profil struktural (qpdf-normalize), bukan sha256 mentah.- Plain ≠ arsip.
ConformanceMode::Plainbukan PDF/A. Berkas ini tidak membawa OutputIntent atau penandapdfaid. Jangan memperlakukannya sebagai arsip. - Menerapkan ≠ sepenuhnya konform. Halaman ini mencantumkan klausa yang diterapkan NextPDF, tetapi tidak menyatakan bahwa setiap klausa ISO 32000-2 dipenuhi untuk setiap dokumen. Itu adalah putusan verifikator per dokumen.
- Ekstensi menggunakan namespace. Ekstensi pengembang menggunakan kamus Extensions §7.12 dengan prefiks terdaftar. Kunci privat tanpa prefiks merupakan penyimpangan dari baseline.
Kinerja
Bagian berjudul “Kinerja”Pembuatan baseline berjalan melalui jalur inti mesin. Anggarannya adalah wall ≤ 1500 ms dan puncak ≤ 64 MB untuk dokumen pada umumnya. Penulis baseline mendukung matriks backport (PHP 8.1–8.4).
Catatan keamanan
Bagian berjudul “Catatan keamanan”Keluaran baseline PDF 2.0 tidak menyertakan enkripsi atau tanda tangan kecuali Anda menambahkannya secara eksplisit. Enkripsi memberikan kerahasiaan dan dibahas dalam resep terpisah. Bit izin ISO bergantung pada kerja sama pembaca, bukan kendali akses. Baseline tidak memberikan jaminan keamanan.
Konformitas
Bagian berjudul “Konformitas”| Klaim | Spesifikasi | Klausa | reference_id |
|---|---|---|---|
| Berkas PDF 2.0 yang konform wajib membawa trailer / struktur berkas yang konform. | ISO 32000-2 | §7.5.5 | |
| Lokasi setiap objek dapat ditemukan melalui tabel atau stream referensi-silang. | ISO 32000-2 | §7.5.8 | |
| Berkas memiliki katalog dokumen sebagai objek root-nya. | ISO 32000-2 | §7.7.2 | |
| Konformitas dirumuskan dalam istilah penulis dan pembaca yang konform. | ISO 32000-2 | §7.2 | |
| Ekstensi versi menggunakan kamus Extensions / prefiks pengembang. | ISO 32000-2 | §7.12 | |
| Keluaran tagged dibangun di atas baseline struktur-logis ISO 32000-2. | ISO 32000-2 | §14.7.2 |
Kutipan berupa penunjuk clause-id + reference_id ke korpus verifikasi. Tidak ada teks standar yang direproduksi; NextPDF meringkas klausa dengan kata-katanya sendiri.