Kenapa PDF saya nyaris tidak mengecil?
PDF saya sudah lewat kompresor tapi cuma turun dari 4,1 MB ke 4,0 MB. Alatnya rusak?
PDF itu sebuah lemari arsip
Model pikir yang menimbulkan kekecewaan adalah membayangkan PDF sebagai gambar dari sebuah dokumen. PDF bukan itu. PDF, sebagaimana didefinisikan ISO 32000, adalah kontainer berisi objek-objek bernomor: pohon halaman, content stream yang penuh operator penggambaran, program font tertanam, image XObject, kolom formulir, anotasi, outline, dan tabel referensi silang yang menyebutkan di mana setiap objek dimulai.
Sebagian besar objek itu sudah terkompresi. Content stream biasanya di-encode dengan Flate, algoritme yang sama dengan yang dipakai file ZIP. Foto yang tertanam biasanya disimpan sebagai stream DCT, yaitu data JPEG yang diteruskan tanpa perubahan. Jadi ketika sebuah kompresor serbaguna melihat PDF, yang dilihatnya adalah kotak berisi benda-benda yang masing-masing sudah pernah dikompresi sekali.
Cari tahu di mana byte-nya berada sebelum mengompresi apa pun
Diagnosis yang paling berguna adalah mengetahui jenis dokumen apa yang Anda pegang, karena hal itu hampir sepenuhnya memprediksi hasilnya.
| Jenis dokumen | Di mana byte-nya berada | Apa yang bisa dilakukan simpan struktural |
|---|---|---|
| Laporan teks dari pengolah kata | Program font tertanam dan content stream yang kecil | Sangat sedikit; isinya sudah padat |
| Halaman hasil pindai | Satu gambar besar per halaman | Nyaris tidak ada tanpa menyentuh gambarnya |
| Ekspor presentasi | Foto tertanam dan gradasi | Lumayan, kalau gambarnya terduplikasi di beberapa slide |
| Gambar teknik | Content stream vektor yang panjang | Lumayan, dengan meng-encode ulang stream dan membuang objek yang tak terpakai |
| Formulir dengan lampiran | File tertanam, JavaScript, kamus anotasi | Banyak, kalau tambahan-tambahan itu bisa dibuang |
Apa yang sebenarnya dibuang oleh simpan struktural
Simpan struktural menulis ulang dokumen tanpa mengubah tampilan halaman mana pun. Ia bisa membuang objek yang tidak lagi dirujuk apa pun, yang menumpuk setiap kali sebuah dokumen disunting lalu disimpan secara inkremental. Ia bisa mengompresi tabel referensi silang dan mengemas objek-objek kecil ke dalam object stream. Ia bisa membuang metadata dokumen, thumbnail, dan riwayat penyuntingan yang ditinggalkan sebagian program pembuatnya.
Pada dokumen yang sudah berkali-kali disunting dan disimpan ulang, itu bisa menjadi kemenangan besar. Pada dokumen yang diekspor sekali secara bersih dari pengolah kata, tidak ada apa pun untuk dipungut: filenya sudah mendekati bentuk terkecilnya sendiri, dan berkurang seratus kilobyte dari empat megabyte adalah persis hasil yang wajar diharapkan.
Kenapa dokumen teks bertahan
Pada PDF teks, sebagian besar isi filenya biasanya adalah font tertanam. Program font adalah biner ringkas berisi garis luar glif dan instruksi hinting, dan ia ada di sana karena dokumennya harus tampil identik di komputer yang tidak memasang huruf tersebut. Anda tidak bisa mengompresnya sampai hilang tanpa memangkas subsetnya lebih jauh atau membuangnya, dan membuangnya mengubah tampilan halaman.
Teksnya sendiri mungil. Seratus halaman prosa hanya beberapa ratus kilobyte karakter sebelum dikompresi. Kalau PDF teks Anda besar, periksalah font-nya dan gambar apa pun yang bersembunyi di balik teksnya — logo yang berulang di kepala halaman, tanda air di latar — bukan kata-katanya.
Kenapa hasil pindai bisa mengecil drastis
Halaman hasil pindai adalah satu foto besar dari selembar kertas, sering diambil pada 300 titik per inci atau lebih. Halaman A4 pada 300 DPI kira-kira 2480 × 3508 piksel — hampir sembilan juta piksel, untuk halaman yang muatan informasinya cuma beberapa kilobyte teks. Itulah sebabnya hasil pindai bereaksi begitu dramatis terhadap kompresi rasterisasi: menurunkan resolusi render dan meng-encode ulang gambar halamannya menyerang bagian file yang memang besar.
Itu juga sebabnya mode tersebut merusak. Begitu sebuah halaman menjadi gambar, lapisan teks yang bisa dicari, tautannya, kolom formulirnya, anotasinya, struktur tag aksesibilitasnya, dan tanda tangan digital apa pun ikut hilang. FileSlimmer memperlakukan rasterisasi sebagai mode tersendiri yang diberi label jelas beserta peringatan itu, bukan sebagai jalan pintas diam-diam ketika simpan struktural mengecewakan.
Kenapa tidak ada yang bisa menjanjikan Anda sebuah angka
Ukuran target untuk PDF adalah pencarian di sepanjang resolusi render dan kualitas gambar, dan pencarian itu punya batas bawah: di bawah resolusi tertentu, teks pada hasil pindai berhenti terbaca. Apakah sebuah dokumen tertentu mencapai batas ukuran tertentu di atas batas bawah itu bergantung pada jumlah halaman, luas tinta, banyaknya konten fotografis, dan noise pemindainya. Dua dokumen dengan jumlah halaman yang sama bisa berakhir pada ukuran yang sangat berbeda.
Perilaku yang jujur adalah berhenti di batas bawah dan melaporkan di mana pencariannya berhenti, dan itulah yang dilakukan preset ukuran target PDF milik FileSlimmer. Alat yang selalu tepat mengenai angka yang Anda ketikkan entah berbohong soal angkanya atau merusak dokumennya demi mencapainya.
Sebelum menyalahkan alatnya
- Periksa apakah PDF-nya hasil pindai. Coba seleksi satu baris teks: kalau kursor tidak bisa menyeleksi apa pun, setiap halamannya adalah gambar.
- Bandingkan jumlah halaman dengan ukurannya. File 40 MB berisi tiga halaman berarti berat gambar; file 40 MB berisi 900 halaman bisa jadi sepenuhnya wajar.
- Periksa apakah dokumennya terenkripsi. PDF yang dilindungi kata sandi sama sekali tidak bisa disusun ulang sebelum dibuka kuncinya.
- Periksa apakah dokumennya ditandatangani. Menulis ulang dokumen bertanda tangan membatalkan tanda tangannya, dan itu biasanya hasil yang lebih buruk daripada file yang besar.
- Periksa apa yang sebenarnya Anda butuhkan. Memisahkan enam halaman yang memang harus dikirim sering lebih baik daripada mengompresi kesembilan puluh halamannya.
Alat untuk ini
Sumber
- ISO 32000-2 — Document management, Portable Document Format
- Adobe — PDF 32000-1:2008, the freely published PDF 1.7 specification
- PDF Association — ISO 32000 and the PDF standards family