PDF 2.0: apa saja yang berubah
ISO 32000-2 Evidence: Standard-backed
Sekilas pandang
Bagian berjudul “Sekilas pandang”PDF 2.0 adalah ISO 32000-2. Ini adalah spesifikasi PDF pertama yang sepenuhnya dimiliki ISO, bukan Adobe. Sebagian besar spesifikasi ini merupakan konsolidasi dan pembenahan dari 1.7, bukan perombakan besar. Halaman ini membahas apa yang sebenarnya berubah, perubahan mana yang terasa dalam praktik, dan bagaimana NextPDF menargetkan baseline 2.0 secara default sambil tetap dapat menulis struktur berkas yang lebih lama ketika profil tertentu menuntutnya.
Mengapa ini penting
Bagian berjudul “Mengapa ini penting”“PDF 2.0” terdengar seolah-olah seharusnya menjadi format yang berbeda. Padahal tidak. Berkas 2.0 memakai model objek, xref, dan trailer yang sama seperti 1.7, sehingga perubahan sebenarnya mudah diremehkan. Masalah biasanya bukan muncul dari fitur besar yang menjadi sorotan, melainkan dari pengetatan: aturan yang dulu opsional di 1.7 tetapi kini diharapkan, serta fitur yang diam-diam dihapus. Dokumen yang sepenuhnya valid sebagai berkas 1.7 bisa menjadi berkas 2.0 yang tidak konforman tanpa satu pun perbedaan yang kasat mata.
Alasan lainnya adalah arah pengembangan. NextPDF adalah engine PDF 2.0. Setelah Anda memahami apa yang diharapkan oleh 2.0 dan di mana ia sengaja berbeda dari 1.7, Anda dapat menalar mengapa engine menolak hal-hal tertentu, menyematkan fon dengan lebih ketat, dan menggunakan default aliran rujukan silang alih-alih tabel.
Versi singkatnya
Bagian berjudul “Versi singkatnya”- PDF 2.0 = ISO 32000-2, dimiliki ISO, dan dibangun di atas (bukan menggantikan) 1.7.
- Header menjadi
%PDF-2.0; penulis yang konforman menyatakan versinya sebagai 2.0 di header atau di/Versionpada katalog. - Sebagian besar struktur berkas tidak berubah — objek tak langsung yang sama, trailer yang sama, dan disiplin
startxref/%%EOFyang sama. - Aliran rujukan silang adalah default 2.0 yang alami; tabel klasik 20-byte masih legal dan masih diwajibkan oleh sebagian profil PDF/A.
- 2.0 menambahkan beberapa hal (misalnya struktur berkas terkait dan bagian dokumen yang lebih kaya, serta enkripsi yang lebih kuat melalui ekstensi AES-256-GCM) dan menghapus beberapa hal (sejumlah tag struktur; ekspektasi penyematan fon yang diperketat; koleksi karakter CJK yang dideprekasi).
- NextPDF menargetkan 2.0 secara default dan dapat menyerialkan struktur 1.7/1.4 ketika profil konformansi membutuhkannya.
Bagaimana NextPDF menanganinya
Bagian berjudul “Bagaimana NextPDF menanganinya”Versi adalah keputusan yang diekspresikan di satu tempat: strategi serialisasi.
Pdf20StreamStrategy (src/Writer/Pdf20StreamStrategy.php) menulis header %PDF-2.0, melaporkan /2.0 sebagai versi katalog, dan memancarkan aliran rujukan silang terkompresi. Strategi ini juga membawa pengetatan fon 2.0 secara langsung. Dalam profil 2.0, strategi ini dapat menegakkan aturan terhadap fon Type 1 standar yang tidak disematkan, bukan sekadar memperingatkannya, karena standar kini mengharapkan fon tersebut disematkan. Kedua strategi tabel (Pdf17TableStrategy, Pdf14TableStrategy) ada justru karena sebagian profil memerlukan bentuk yang lebih lama. PDF/A-2/-3 mewajibkan tabel rujukan silang tradisional, sedangkan PDF/A-1 juga melarang aliran objek dan aliran rujukan silang. Ketiga strategi mengimplementasikan satu antarmuka PdfSerializationStrategy yang sama, sehingga penulis tetap identik di atas batas itu. Yang berubah hanya bentuk trailer/xref.
Enkripsi yang lebih kuat disusun dengan pola yang sama terencananya. PdfXrefWriter (src/Writer/PdfXrefWriter.php) meneruskan opt-in AES-256-GCM (ekstensi ISO/TS 32003 untuk 2.0) ke dalam kamus enkripsi sehingga entri versi handler dan mode cipher yang dipancarkan sesuai dengan byte yang benar-benar dihasilkan. Engine tidak mengiklankan satu cipher lalu menulis cipher lain.
Secara keseluruhan, rancangannya seperti ini: 2.0 adalah default. Struktur yang lebih lama dapat dijangkau secara sengaja, tidak pernah secara tidak sengaja. Ketika 2.0 memperketat sebuah aturan, NextPDF dapat mempertahankan batas yang lebih ketat itu alih-alih melonggarkannya secara diam-diam.
- Step 1 of 3: ISO 32000-1 PDF 1.7 — the Adobe-authored base, adopted by ISO
- Step 2 of 3: ISO 32000-2 PDF 2.0 — ISO-owned consolidation, tightening, and additions
- Step 3 of 3: ISO/TS 32003 AES-256-GCM (AESV4) — an encryption extension to PDF 2.0
Apa kata buktinya
Bagian berjudul “Apa kata buktinya”Pernyataan versi bersifat normatif. Spec: ISO 32000-2, §7.5.2 ISO 32000-2 §7.5.2 menyatakan bahwa prosesor yang menulis berkas konforman wajib (shall) mengidentifikasi versi — baik di header maupun sebagai entri /Version pada katalog — sebagai 2.0, dan bahwa header berbentuk %PDF-1.n atau %PDF-2.n yang diikuti oleh satu penanda akhir baris.
Spec: ISO 32000-2, §7.7.2 ISO 32000-2 §7.7.2 menambahkan bahwa
/Version pada katalog mengesampingkan versi header sebelumnya, yang persis itulah yang membuat
kenaikan versi inkremental dimungkinkan. Evidence: Standard-backed
Sifat 2.0 sebagai konsolidasi, bukan penulisan ulang, terlihat dari apa yang dipertahankannya: aliran rujukan silang (/Type /XRef) adalah mekanisme yang sama yang diperkenalkan di PDF 1.5 dan diteruskan sebagai default 2.0 ( Spec: ISO 32000-2, §7.5.8 ISO 32000-2 §7.5.8 ). Struktur objek tak langsung, trailer, dan startxref tidak berubah dari deskripsi pada halaman sebelumnya.
Perubahan yang penting adalah penghapusan dan pengetatan. Standar mencatat bahwa enam elemen struktur standar yang ada di namespace struktur standar PDF 1.7 bukan bagian dari namespace PDF 2.0 — Art, BlockQuote, TOC, Reference, BibEntry, dan Code ( Spec: ISO 32000-2, Annex L.3 ISO 32000-2 Annex L.3 , dengan perbedaan namespace didefinisikan menurut Spec: ISO 32000-2, §14.8.6 ISO 32000-2 §14.8.6 ). Standar ini juga memperketat keempat belas fon Type 1 standar: jika 1.0–1.7 mengizinkan kamus fon menghilangkan entri metrik, 2.0 menutup kelonggaran tersebut ( Spec: ISO 32000-2, §9.6.2.1 ISO 32000-2 §9.6.2.1 ). Standar ini juga merevisi koleksi karakter CJK yang telah ditetapkan. Sebagai contoh, Adobe-Korea1 dideprekasi di 2.0. Adobe-KR ditambahkan. Tidak satu pun dari hal ini mengubah tampilan halaman yang sudah ada. Semuanya dapat mengubah apakah halaman itu konforman atau tidak.
| Kategori | Contoh (2.0 vs 1.7) | Apakah mengubah tampilan? | Mengapa penting |
|---|---|---|---|
| Tidak berubah | Objek tak langsung, trailer, startxref/%%EOF, aliran xref | — | 2.0 adalah model objek yang sama; sebagian besar perkakas tetap berlaku |
| Ditambahkan | Struktur berkas terkait / bagian dokumen yang lebih kaya; enkripsi AES-256-GCM (ISO/TS 32003) | Tidak | Kemampuan baru yang Anda aktifkan; diabaikan dengan aman oleh pembaca yang lebih lama |
| Diperketat | Fon Standar-14 diharapkan disematkan; metrik tidak lagi boleh dihilangkan | Tidak | Berkas 1.7 yang valid bisa menjadi berkas 2.0 yang tidak konforman |
| Dihapus | Enam elemen struktur namespace 1.7 (Art, BlockQuote, TOC, Reference, BibEntry, Code); koleksi CJK yang dideprekasi (misalnya, Adobe-Korea1) | Tidak | Senyap: tidak ada yang kasat mata yang menandakan hilangnya konformansi |
Perubahan PDF 2.0 yang penting sebagian besar tidak kasat mata: penambahan yang Anda aktifkan, serta pengetatan dan penghapusan yang mengubah konformansi tanpa mengubah satu piksel pun yang dirender.
Contoh praktis
Bagian berjudul “Contoh praktis”Sering kali, satu-satunya perbedaan yang kasat mata antara berkas 2.0 dan berkas 1.7 hanya dua baris — header dan versi katalog — meskipun aturan konformansi di baliknya jauh berbeda.
%PDF-2.0 % was %PDF-1.7...1 0 obj<< /Type /Catalog /Version /2.0 % catalog states 2.0; overrides header if later /Pages 2 0 R >>endobj...% Cross-reference STREAM is the 2.0 default (was often a 20-byte table)99 0 obj<< /Type /XRef /Size 100 /W [1 2 2] /Filter /FlateDecode /Root 1 0 R >>stream<binary xref entries>endstreamendobjstartxref12345%%EOFPembaca melihat %PDF-2.0 dan /Version /2.0. Yang tidak dilihat pembaca — tetapi dilihat oleh pemeriksa konformansi — adalah bahwa berkas ini kini diharapkan menyematkan fon standarnya dan tidak boleh menggunakan tag struktur yang dihapus 2.0. Byte yang berbeda hanya sedikit. Perbedaan aturannya tidak.
Kesalahpahaman umum
Bagian berjudul “Kesalahpahaman umum”Jebakannya adalah berpikir, “kita menghasilkan PDF 2.0, jadi kita lebih konforman daripada sebelumnya.” Menulis %PDF-2.0 adalah sebuah klaim, bukan jaminan. Sebuah berkas dapat membawa header 2.0 namun tetap melanggar 2.0 — dengan merujuk fon standar yang tidak disematkan, atau dengan menggunakan fitur yang dihapus 2.0 — persis seperti yang ditoleransi di bawah 1.7. Penanda versi menaikkan standar acuan untuk mengukur berkas tersebut; penanda itu tidak otomatis membuat berkas melewatinya. Kesalahan sebaliknya adalah berasumsi bahwa berkas 1.7 berfungsi sebagai 2.0 hanya dengan mengubah header: biasanya berkas itu dirender secara identik tetapi gagal konformansi, karena pengetatannya nyata meskipun tidak kasat mata.
Batas dan batasan
Bagian berjudul “Batas dan batasan”Menargetkan baseline 2.0 berarti NextPDF menggunakan default struktur berkas 2.0 dan dapat mempertahankan aturan 2.0 yang diperketat. Ini tidak berarti setiap fitur opsional 2.0 telah diimplementasikan, dan juga tidak berarti memancarkan header 2.0 menyatakan dokumen telah lulus sertifikasi terhadap PDF/A, PDF/UA, atau profil lainnya. Semua itu adalah target konformansi yang terpisah dan lebih ketat, dilapiskan di atas spesifikasi dasar, masing-masing dengan validasinya sendiri.
Halaman ini adalah orientasi praktis terhadap perbedaan versi, bukan log perubahan menyeluruh antara ISO 32000-2 dan 32000-1. Ketika fitur atau deprekasi 2.0 tertentu mengatur perilaku engine, perilaku itu ditambatkan ke klausanya sendiri. Halaman ini memetakan lanskap, bukan mengenumerasi setiap delta pada tingkat klausa.
Mini-FAQ
Bagian berjudul “Mini-FAQ”Apakah PDF 2.0 kompatibel mundur dengan pembaca 1.7? Sebagian besar ya, untuk struktur yang tidak berubah. Fitur baru 2.0 umumnya dirancang agar pembaca yang lebih lama dapat mengabaikan bagian yang tidak dipahaminya. Namun, fitur yang khusus 2.0 tidak akan didukung oleh pembaca 1.7.
Mana yang menang, header atau /Version pada katalog? /Version pada katalog diutamakan ketika entri itu menamai versi yang lebih baru daripada header. Inilah yang memungkinkan pembaruan inkremental menaikkan versi berkas tanpa menulis ulang header.
Mengapa NextPDF menggunakan default aliran rujukan silang, bukan tabel? Aliran rujukan silang adalah mekanisme alami PDF 2.0 — ringkas dan mampu mengindeks objek terkompresi. Tabel 20-byte tetap ditulis ketika profil tertentu (terutama beberapa tingkat PDF/A) membutuhkannya.
Dokumen terkait
Bagian berjudul “Dokumen terkait”- Apa itu PDF sebenarnya — model objek dan xref yang dipertahankan PDF 2.0 dari 1.7.
- Lanskap standar — di mana ISO 32000-2 berada di antara standar yang dilacak NextPDF dan bagaimana sebuah klausa menjadi perilaku.
- Fon: bagian yang sulit — pengetatan penyematan fon adalah salah satu perubahan 2.0 yang benar-benar terasa.
Glosarium
Bagian berjudul “Glosarium”- PDF 2.0 — spesifikasi PDF yang distandarkan sebagai ISO 32000-2; edisi pertama yang dimiliki ISO, bukan Adobe.
- ISO 32000-1 — standardisasi ISO atas PDF 1.7 milik Adobe; basis yang menjadi pijakan PDF 2.0.
- ISO/TS 32003 — spesifikasi teknis yang memperluas PDF 2.0 dengan enkripsi AES-256-GCM (AESV4).
/Versionpada katalog — entri katalog dokumen yang menyatakan versi PDF; mengesampingkan header ketika entri itu menamai versi yang lebih baru.- Aliran rujukan silang — mekanisme rujukan silang PDF 1.5+ / 2.0 (
/Type /XRef); default NextPDF, dengan tabel klasik yang masih tersedia untuk profil yang lebih lama. - Pengetatan — aturan yang di 1.7 opsional atau diizinkan, lalu di 2.0 diharapkan atau diwajibkan, sehingga mengubah konformansi tanpa mengubah tampilan.