Lewati ke konten

Baseline PDF 2.0: klausa ISO 32000-2 yang diterapkan NextPDF

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.

Terminal window
composer require nextpdf/core:^3

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

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 /Root di 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 /ID berkas. /ID bersifat unik per berkas dan dinormalisasi keluar dari perbandingan. Inilah sebabnya sebagian besar keluaran multi-objek menggunakan reproducibility_profile: structural, bukan bitwise.
  • Struktur logis — §14.7.2: ketika mode tagged diaktifkan, baseline StructTreeRoot mendukung 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.

SimbolEfek
ConformanceMode::PlainDefault — keluaran PDF 2.0 tanpa batasan.
ConformanceMode::requiresPdf17(): boolFalse untuk mode PDF 2.0; penulis menghasilkan header %PDF-2.0.
NextPDF\Compliance\Validator\ArlingtonValidatorPemeriksaan silang tata bahasa terhadap model PDF Arlington (membantu verifikasi).
<?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";

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.

  • /ID bersifat unik per berkas. Keluaran baseline yang berisi /ID trailer, /CreationDate, atau prefiks subset fon tidak stabil per byte. Bandingkan menggunakan profil struktural (qpdf-normalize), bukan sha256 mentah.
  • Plain ≠ arsip. ConformanceMode::Plain bukan PDF/A. Berkas ini tidak membawa OutputIntent atau penanda pdfaid. 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.

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

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.

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