Format File PDF Dijelaskan: Anatomi, Lapisan, dan Standar
Apa sebenarnya isi PDF? Diagram berlabel dan glosarium yang mencakup empat bagian fisik (header, body, xref, trailer), enam lapisan konten (teks, gambar, font, anotasi, vektor, tanda tangan), metadata, dan standar ISO (PDF/A, PDF/X, PDF/UA, PDF/E, PDF/VT) yang dibangun di atasnya.
PDF bukanlah satu kesatuan. Ia adalah wadah biner dengan struktur spesifik di disk, serangkaian lapisan konten yang ditumpuk di dalam wadah tersebut, dan keluarga standar ISO yang dibangun di atas spesifikasi dasar. Buka salah satunya di hex editor dan strukturnya terlihat dalam teks biasa di beberapa baris pertama. Buka salah satunya di penampil dan lapisan-lapisannya dirender bersama sebagai satu halaman.
Panduan ini adalah referensi berlabel: struktur file fisik, lapisan konten yang dipegang oleh body, metadata yang mengelilingi semuanya, dan standar (PDF/A, PDF/X, PDF/UA, PDF/E, PDF/VT) yang membatasinya untuk kasus penggunaan tertentu.

Ingin menggunakan diagram ini di blog Anda? Salin kode semat ini:
Empat Bagian Fisik
Setiap PDF di disk memiliki struktur empat bagian yang sama, dalam urutan ini:
1. Header
Baris pertama file. Selalu dimulai dengan %PDF- diikuti nomor versi:
%PDF-1.7Versi berkisar dari 1.0 (dirilis 1993) hingga 2.0 (dirilis 2017, saat ini). Header diikuti oleh baris komentar dengan byte biner yang memberi sinyal kepada FTP dan alat transportasi lainnya bahwa ini adalah file biner.
2. Body - Objek Tidak Langsung
Sebagian besar file. Setiap halaman, font, gambar, anotasi, dan bidang formulir adalah objek tidak langsung yang diberi nomor:
1 0 obj
<< /Type /Catalog /Pages 2 0 R >>
endobj
2 0 obj
<< /Type /Pages /Kids [3 0 R] /Count 1 >>
endobj
3 0 obj
<< /Type /Page /Parent 2 0 R /Contents 4 0 R /Resources << ... >> >>
endobjSetiap objek memiliki ID (angka sebelum 0 obj), nomor generasi (0, digunakan untuk pembaruan inkremental), dan payload antara << dan >> untuk kamus atau stream dan endstream untuk aliran biner (data gambar, data font, konten terkompresi).
Objek saling merujuk dengan sintaks <id> <gen> R (misalnya, 3 0 R berarti "objek 3, generasi 0"). Inilah cara halaman merujuk ke font yang digunakannya, atau cara katalog merujuk ke akar pohon halaman.
3. Tabel Referensi Silang (xref)
Tabel pencarian offset byte. Untuk setiap objek dalam body, xref mencatat posisi byte absolutnya dalam file:
xref
0 6
0000000000 65535 f
0000000017 00000 n
0000000089 00000 n
0000000172 00000 n
0000000299 00000 n
0000000453 00000 nInilah yang membuat PDF dapat diakses secara acak. Penampil dapat membaca xref, langsung melompat ke offset byte objek 3, dan merender halaman itu tanpa mengurai sisa file. Inilah mengapa PDF dari satu bab terbuka seketika meskipun file sumbernya 500 halaman.
4. Trailer
Bagian terakhir. Memberi tahu parser di mana menemukan xref dan objek mana yang merupakan root:
trailer
<< /Size 6 /Root 1 0 R /Info 7 0 R >>
startxref
1893
%%EOFNilai startxref adalah offset byte dari tabel xref. Penanda %%EOF adalah akhir literal dari file. Trailer adalah apa yang memungkinkan pembaruan inkremental: menambahkan xref + trailer baru di akhir memungkinkan Anda menambahkan objek tanpa menulis ulang seluruh file.
Enam Lapisan Konten
Di dalam body, konten disimpan di enam jenis lapisan. Setiap halaman PDF yang dirender adalah gabungan dari lapisan-lapisan ini:
1. Teks
Perintah posisi glif dan referensi font, bukan string teks. PDF menyimpan instruksi seperti "gambar glif 42 dari font F3 pada posisi (120, 540)" daripada "gambar huruf A di sini." Inilah sebabnya teks dapat dipilih dan dicari: penampil memetakan balik ID glif ke titik kode Unicode melalui pemetaan ToUnicode (atau CMap untuk font CJK).
Ketika teks kehilangan pemetaan ToUnicode, Anda mendapatkan masalah klasik "PDF dengan teks yang dapat dipilih yang disalin sebagai sampah." Teks terlihat, tetapi pemetaan glif-ke-Unicode rusak atau tidak ada.
2. Gambar
Disimpan sebagai aliran yang disematkan dalam salah satu dari beberapa format:
- JPEG (filter DCTDecode): foto, paling umum
- JPEG2000 (JPXDecode): kompresi lebih tinggi, kurang umum
- Setara PNG (filter FlateDecode + Predictor): tangkapan layar, seni garis
- CCITT Group 4 (filter CCITTFaxDecode): teks hasil pindaian hitam-putih, digunakan dalam pindaian arsip
- JBIG2 (filter JBIG2Decode): gambar bilevel, umum dalam dokumen hasil OCR
Gambar dapat di-downsample, dikompresi ulang, atau diganti tanpa memengaruhi konten lain.
3. Font
Disematkan sebagai program font lengkap, subset (hanya glif yang digunakan disertakan), atau direferensikan berdasarkan nama (harus diinstal pada sistem penampil). Subset adalah default - ini secara dramatis mengurangi ukuran file. Format font yang didukung: Type1, TrueType, OpenType, dan CIDFont (untuk CJK).
Ketika font direferensikan tetapi tidak disematkan dan tidak diinstal pada sistem penampil, penampil menggantinya dengan font yang serupa - yang biasanya terlihat salah. PDF/A mengharuskan semua font disematkan untuk mencegah hal ini.
4. Anotasi
Sorotan, komentar, tautan, stempel, watermark, dan bidang formulir semuanya adalah anotasi. Mereka dilapisi di atas konten halaman dan dapat ditambahkan, diedit, atau dihapus tanpa mengubah halaman yang mendasarinya.
Bidang formulir adalah kasus khusus: anotasi widget interaktif (bagian yang terlihat) ditambah kamus bidang (bagian data). Ketika Anda mengisi formulir dan menyimpan, hanya kamus bidang yang berubah - halaman itu sendiri tidak tersentuh.
5. Grafik Vektor
Garis, bentuk, kurva, dan jalur yang digambar dengan operator mirip PostScript (moveto, lineto, curveto). Skala tanpa batas tanpa kehilangan kualitas. Sebagian besar ekspor CAD, bagan, dan diagram dalam PDF adalah grafik vektor.
6. Tanda Tangan Digital
Tanda tangan yang didukung PKI terikat pada rentang byte file. Kamus tanda tangan menentukan "byte 0 hingga 12.547 dan 14.200 hingga akhir file ditandatangani" - rentang kecil di tengah dicadangkan untuk nilai tanda tangan itu sendiri. Perubahan apa pun pada rentang byte yang ditandatangani akan membatalkan tanda tangan, yang merupakan cara PDF mendeteksi perusakan setelah penandatanganan.
Beberapa PDF memiliki beberapa tanda tangan, dilapisi sebagai pembaruan inkremental - setiap penanda tangan menandatangani file sebagaimana adanya saat mereka menerimanya, mempertahankan rantai.
Metadata: Dua Sistem Paralel
PDF memiliki dua sistem metadata yang sering kali tidak selaras:
Kamus /Info Standar
Disimpan di trailer. Bidang: Title, Author, Subject, Keywords, Creator (aplikasi yang digunakan pengguna untuk membuat dokumen), Producer (aplikasi yang menghasilkan PDF), CreationDate, ModDate. String teks biasa, mudah dibaca dengan alat PDF apa pun.
Aliran Metadata XMP
Aliran XML terpisah (Adobe XMP, berdasarkan RDF/XML) yang mendukung skema yang lebih kaya: Dublin Core, IPTC, skema khusus domain (profil warna, pendaftaran hak cipta, versi naskah).
Generator PDF modern menulis ke keduanya. PDF lama hanya memiliki /Info. Beberapa PDF memiliki /Info usang dari versi sebelumnya dan XMP akurat dari pengeditan terbaru - atau sebaliknya. Saat mengaudit PDF untuk kepatuhan atau forensik, periksa keduanya.
Standar ISO Dibangun di Atas PDF
Spesifikasi PDF dasar adalah ISO 32000. Beberapa standar turunan membatasi PDF untuk kasus penggunaan tertentu:
| Standar | Penggunaan | Batasan |
|---|---|---|
| PDF/A | Pengarsipan jangka panjang | Semua font disematkan, tidak ada JavaScript, tidak ada audio/video, ruang warna independen perangkat. Tingkat kepatuhan: PDF/A-1, A-2, A-3 (memungkinkan lampiran file) |
| PDF/X | Produksi cetak | Warna CMYK, font dan profil warna yang disematkan, tidak ada transparansi (PDF/X-1a) atau transparansi terkontrol (PDF/X-4) |
| PDF/UA | Aksesibilitas | Pohon struktur bertag, metadata bahasa, teks alternatif untuk gambar, urutan baca logis |
| PDF/E | Rekayasa | Model 3D (format U3D, PRC), metadata khusus CAD |
| PDF/VT | Pencetakan transaksional variabel | Dioptimalkan untuk pengiriman surat yang dipersonalisasi bervolume tinggi |
Sebuah PDF dapat mematuhi beberapa standar secara bersamaan - PDF/A-2u (arsip dengan pemetaan Unicode) ditambah PDF/UA (aksesibilitas) umum untuk arsip pemerintah dan hukum.
PDF Terlinear (Dioptimalkan untuk Web)
PDF "terlinear" atau "dioptimalkan untuk web" menyusun ulang body sehingga objek halaman pertama muncul lebih awal dalam file. Penampil web dapat merender halaman 1 setelah mengunduh hanya sekitar 50 KB pertama alih-alih menunggu seluruh file. Trailer diduplikasi di depan, ditambah tabel petunjuk yang memberi tahu penampil di mana setiap halaman dimulai.
Sebagian besar generator PDF modern mendukung linearisasi sebagai opsi "Simpan untuk Web". Format ini menambah ukuran file sebesar 2-5% sebagai ganti rendering halaman pertama yang cepat pada koneksi yang lambat.
Enkripsi dan Izin
PDF dapat dienkripsi dengan kata sandi (atau sertifikat) dan diberikan izin terperinci: cetak, salin teks, modifikasi, isi formulir, ekstrak untuk aksesibilitas. Enkripsi disimpan dalam kamus /Encrypt di trailer.
Kekuatan enkripsi telah berevolusi: RC4 40-bit (PDF awal, mudah dipecahkan hari ini), RC4 128-bit (masih lemah), AES-128, AES-256. Implementasi RC4 asli Acrobat 5 dipecahkan secara publik pada tahun 2001; enkripsi PDF modern (AES-256, PDF 2.0) kuat ketika digunakan dengan kata sandi yang kuat.
Catatan: "Izin" bersifat saran. Penampil yang menghormatinya akan menegakkannya. Penampil yang mengabaikannya (atau alat yang menghapus enkripsi) tidak.
Cara PDFSub Membaca PDF
PDFSub memproses PDF menggunakan binding PDFium Rust (mesin yang sama yang menggerakkan penampil PDF Chromium) ditambah PaddleOCR untuk dokumen hasil pindaian. Untuk detail arsitektur lengkap dan perbandingan dengan alat berbasis cloud, lihat Keamanan PDF Peramban vs. Cloud.
Untuk mengonversi PDF ke format lain sambil mempertahankan struktur yang dijelaskan di atas:
- PDF ke Excel - mengekstrak teks + tabel, mempertahankan koordinat
- OCR PDF - menambahkan lapisan teks yang dapat dicari ke PDF hasil pindaian
- PDF ke Word - menyusun ulang teks menjadi paragraf yang dapat diedit
- Kompres PDF - downsample gambar, subset font
Untuk alur kerja pengarsipan secara khusus, lihat Cara Mengonversi PDF ke PDF/A.
Baca Lebih Lanjut
- ISO 32000-2 (spesifikasi PDF 2.0) - referensi otoritatif, berbayar
- Arsip Referensi PDF Adobe - referensi gratis untuk PDF 1.7
- PDF Association - kelompok kerja industri, artikel gratis dan file uji kepatuhan
Untuk topik khusus PDF: Panduan Kepatuhan PDF untuk Pengacara, Panduan Konversi PDF/A.