Pengoptimuman struktur atau pembinaan semula: alat manakah yang sesuai?
Kedua-dua program menggunakan pendekatan yang berbeza secara asas. Arahan QPDF pada halaman ini mengekalkan kandungan halaman anda dan hanya menyimpan semula objek fail dengan sepadat mungkin. Untuk itu, misalnya, arahan ini mengumpulkan objek dalam aliran objek dan memampatkan semula data Flate. Ia tidak mengurangkan resolusi imej atau mengekodnya semula sebagai JPEG. Pengoptimuman imej pilihan QPDF ialah langkah berasingan yang melibatkan kehilangan kualiti dan diterangkan secara ringkas dalam bahagian seterusnya. Setiap pilihan diterangkan dalam dokumentasi QPDF.
Ghostscript berfungsi dengan cara lain. Dengan peranti output pdfwrite, ia membaca PDF dan menghasilkan fail baharu daripada arahan lukisan setiap halaman. Teks dan grafik vektor biasanya kekal dalam bentuk tersebut, jadi halaman tidak sekadar ditukar menjadi imej. Namun, bergantung pada tetapan, Ghostscript boleh melakukan pensampelan semula pada imej. Selain itu, segala unsur yang bukan sebahagian daripada paparan halaman yang kelihatan boleh berubah. Perkara ini diterangkan dalam manual Ghostscript untuk pdfwrite.
Sesetengah program menawarkan kaedah ketiga: menghasilkan semula setiap halaman sebagai imej. Dengan cara ini, teks asli, carian dan unsur interaktif biasanya hilang. Kedua-dua arahan pada halaman ini tidak menggunakan kaedah tersebut.
Tiada satu pun kaedah ini menjamin fail yang lebih kecil. Sebagai panduan umum: jika PDF anda kebanyakannya terdiri daripada teks dan grafik vektor, mulakan dengan QPDF. Ini juga terpakai jika anda mahu meminimumkan perubahan pada imej, pautan atau borang. Ghostscript boleh dipertimbangkan jika foto atau imbasan besar menjadi punca utama saiz fail dan anda sanggup mengorbankan sedikit kualiti imej. Maksud sebenar kaedah tanpa kehilangan kualiti dan kaedah dengan kehilangan kualiti diterangkan dalam panduan Mampatkan PDF tanpa kehilangan kualiti.
Program dengan antara muka grafik menggunakan pendekatan yang sama. Menurut keterangannya sendiri, PDFsam membezakan antara pengoptimuman struktur sahaja dalam edisi Basic dan pemampatan imej khusus dalam edisi Visual serta Enhanced. Panduan lama untuk skrip pengurus fail atau antara muka yang menjalankan Ghostscript di latar belakang kadangkala merujuk kepada versi Ubuntu terdahulu. Oleh itu, jangan ikuti langkah pemasangannya tanpa menyemak terlebih dahulu. Menurut pengeluarnya, PDF24 Creator hanya tersedia untuk Windows; versi Linux tidak ditawarkan.
Jika anda tidak mahu memasang apa-apa, anda boleh menggunakan pemampat PDF dalam pelayar. Ia memproses fail pada peranti anda tanpa memuat naiknya. Namun, kami tidak mengujinya secara khusus dalam pelayar Linux. Perbezaan antara pemprosesan setempat dalam pelayar dengan kerja luar talian sebenar diterangkan dalam panduan Mampatkan PDF tanpa muat naik.
Semak versi dan tulis ke fail output berasingan
Gambaran keseluruhan arahan
Pilih salah satu daripada enam arahan dalam panduan ini. Anda akan melihat arahan dalam bentuk asalnya dan mengetahui maksud setiap bahagiannya.
Arahan ini diambil daripada manual rasmi QPDF dan Ghostscript. Kami tidak menjalankannya sendiri pada Ubuntu atau mana-mana pengedaran lain. Versi yang dipasang pada sistem anda mungkin berbeza daripada versi yang dirujuk dalam dokumentasi dalam talian.
Halaman ini tidak menjalankan arahan dan tidak memaparkan output terminal. Anda hanya akan melihat respons sistem anda apabila anda menjalankan sendiri sesuatu arahan.
Paparkan versi QPDF
Memaparkan versi QPDF yang dipasang. Semak versi tersebut sebelum menggunakan arahan lain.
qpdf --versionAnda juga boleh memilih teks arahan terus dalam medan kod dan menyalinnya.
Bahagian arahan
qpdfProgram- Memanggil program baris perintah QPDF.
--versionPaparkan versi- Memaparkan versi QPDF yang digunakan pada sistem anda.
Jika shell melaporkan bahawa arahan tidak ditemui, QPDF mungkin belum dipasang. Nama pakej dan cara pemasangan bergantung pada pengedaran anda.
Bahagian dalam panduanPaparkan versi Ghostscript dan peranti output
Memaparkan versi Ghostscript dan peranti output yang tersedia.
gs -hAnda juga boleh memilih teks arahan terus dalam medan kod dan menyalinnya.
Bahagian arahan
gsProgram- Memanggil Ghostscript. Pada Unix, program ini bernama gs.
-hBantuan- Memaparkan versi, pilihan, format, peranti output yang tersedia dan laluan carian.
Jika shell melaporkan bahawa arahan tidak ditemui, Ghostscript mungkin belum dipasang. Catat pengedaran dan versinya supaya anda boleh menelusuri hasilnya kemudian.
Bahagian dalam panduanSimpan struktur dengan lebih padat
Menyimpan semula objek dalam fail sepadat yang mungkin. Resolusi imej tidak dikurangkan dan imej tidak dikodkan semula sebagai JPEG.
qpdf "original.pdf" --object-streams=generate --compress-streams=y --decode-level=generalized --recompress-flate --compression-level=9 "optimiert-qpdf.pdf"Anda juga boleh memilih teks arahan terus dalam medan kod dan menyalinnya.
Bahagian arahan
qpdfProgram- Memanggil program baris perintah QPDF.
"original.pdf"Fail input- PDF yang dibaca. Hasilnya disimpan dalam fail berasingan.
--object-streams=generateJana aliran objek- Menggabungkan objek yang sesuai ke dalam aliran objek dan memampatkannya. Output yang terhasil menggunakan sekurang-kurangnya versi PDF 1.5.
--compress-streams=yMampatkan aliran- Memampatkan aliran dengan Flate, selagi aliran itu belum dimampatkan menggunakan kaedah lain.
--decode-level=generalizedNyahmampat data dengan penapis umum- Menyahmampat data menggunakan penapis umum yang disokong seperti LZW, Flate, ASCII85 dan ASCIIHex. Data JPEG (DCT) tidak dinyahmampat dalam proses ini.
--recompress-flateMampatkan semula Flate- Menyahmampat aliran Flate sedia ada dan memampatkannya semula. Ini boleh menyebabkan proses penulisan mengambil masa lebih lama.
--compression-level=9Tahap pemampatan- Memilih tahap zlib tertinggi untuk Flate dalam julat terdokumen dari 1 hingga 9. Tahap yang lebih tinggi memerlukan lebih banyak masa. Nilai ini tidak berkaitan dengan kualiti JPEG.
"optimiert-qpdf.pdf"Fail output- Nama fail baharu. Fail ini menjadi input dalam kedua-dua arahan semakan.
Sama ada fail baharu lebih kecil hanya dapat diketahui dengan membandingkan bilangan bait. Nama output yang berasingan tidak menghalang fail sedia ada dengan nama yang sama daripada ditulis ganti. Oleh itu, pilih nama yang belum digunakan. Arahan ini tidak menjamin bahawa tandatangan digital akan kekal sah.
Bahagian dalam panduanBina semula PDF dengan pdfwrite
Ghostscript membaca PDF dan menghasilkan fail baharu daripada arahan lukisan bagi setiap halaman, di sini menggunakan pratetapan /ebook.
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOutputFile="optimiert-gs.pdf" "original.pdf"Anda juga boleh memilih teks arahan terus dalam medan kod dan menyalinnya.
Bahagian arahan
gsProgram- Memanggil Ghostscript.
-dSAFERKawalan akses- Mengehadkan akses kepada fail dan peranti. Sejak versi 9.50, ini ialah tetapan lalai. Ini bukan jaminan keselamatan umum.
-dBATCHTamatkan selepas itu- Menamatkan Ghostscript sebaik sahaja fail yang ditentukan selesai diproses, tanpa beralih ke mod interaktif.
-dNOPAUSETanpa jeda- Menghalang gesaan dan jeda pada penghujung setiap halaman.
-sDEVICE=pdfwritePeranti output- Memilih pdfwrite, yang menghasilkan PDF baharu. Teks dan grafik vektor biasanya dikekalkan. Apa-apa yang bukan sebahagian daripada paparan halaman yang kelihatan boleh berubah.
-dPDFSETTINGS=/ebookPratetapan- Menetapkan sekumpulan parameter individu dengan resolusi imej sederhana. Namanya menerangkan tujuan penggunaan, bukannya tahap kualiti atau penjimatan yang terjamin.
-sOutputFile="optimiert-gs.pdf"Fail output- Menetapkan nama fail baharu.
"original.pdf"Fail input- PDF yang dibaca oleh Ghostscript.
Butiran imej dan fungsi dokumen boleh berubah walaupun halaman kelihatan sama. Saiz atau kualiti tertentu tidak dijamin. Semak output yang disimpan dan pilih nama output yang belum digunakan.
Bahagian dalam panduanSemak struktur output
Menyemak sintaks output yang disimpan. Untuk hasil Ghostscript, gantikan nama fail.
qpdf "optimiert-qpdf.pdf" --checkAnda juga boleh memilih teks arahan terus dalam medan kod dan menyalinnya.
Bahagian arahan
qpdfProgram- Memanggil program baris perintah QPDF.
"optimiert-qpdf.pdf"Fail untuk disemak- Output arahan QPDF yang telah disimpan sebelum ini.
--checkSemak struktur- Menyemak struktur, penyulitan, pelinearan dan pengekodan aliran.
Nilai pulangan 0 menandakan semakan tanpa ralat, 2 menandakan ralat, 3 menandakan amaran. Semakan ini hanya melibatkan struktur fail. Semakan ini tidak menunjukkan sama ada paparannya betul, sama ada borang dan pautan berfungsi atau sama ada fail itu selamat.
Bahagian dalam panduanPaparkan bilangan halaman
Memaparkan bilangan halaman dalam output yang disimpan. Jalankan semula arahan dengan nama fail asal dan bandingkan kedua-dua bilangannya.
qpdf "optimiert-qpdf.pdf" --show-npagesAnda juga boleh memilih teks arahan terus dalam medan kod dan menyalinnya.
Bahagian arahan
qpdfProgram- Memanggil program baris perintah QPDF.
"optimiert-qpdf.pdf"Fail untuk dikira halamannya- Output arahan QPDF yang telah disimpan sebelum ini.
--show-npagesKira halaman- Memaparkan bilangan halaman dalam fail yang ditentukan.
Bilangan halaman yang sama tidak bermakna kandungan, imej dan fungsi tidak berubah. Periksa sendiri halaman tersebut.
Bahagian dalam panduanButang ini hanya menulis arahan yang dipaparkan ke papan klip selepas anda mengkliknya. Butang ini tidak membaca papan klip, tidak menyimpan apa-apa dan tidak menghantar apa-apa.
Arahan pada halaman ini diambil daripada manual rasmi QPDF dan Ghostscript. Kami tidak menjalankannya sendiri pada Ubuntu atau pengedaran lain, jadi ini bukan panduan Ubuntu yang telah diuji. Semak dahulu versi yang dipasang pada sistem anda. Pakej pengedaran anda mungkin berbeza daripada versi dalam dokumentasi dalam talian semasa.
Paparkan versi yang dipasang
qpdf --versiongs -hJika shell melaporkan bahawa arahan tidak ditemukan, program itu mungkin belum dipasang. Nama pakej dan cara memasangnya bergantung pada pengedaran anda. Catat pengedaran dan versi supaya anda boleh menelusuri semula sesuatu hasil kemudian.
Peraturan asas untuk setiap percubaan
- Biarkan fail asal tanpa perubahan. Fail input dan output mesti sentiasa mempunyai nama yang berbeza.
- Berikan setiap output nama baharu yang belum digunakan supaya anda tidak menulis ganti fail terdahulu.
- Mulakan setiap percubaan seterusnya daripada fail asal, bukan hasil percubaan sebelumnya.
- Jangan gunakan pilihan atau skrip yang menggantikan fail input secara langsung.
QPDF: optimumkan struktur penyimpanan
qpdf "original.pdf" --object-streams=generate --compress-streams=y --decode-level=generalized --recompress-flate --compression-level=9 "optimiert-qpdf.pdf"Arahan ini membaca original.pdf dan menulis fail baharu bernama optimiert-qpdf.pdf. Pilihannya memastikan objek dikumpulkan dalam aliran objek, aliran data dimampatkan dan data Flate dimampatkan semula pada tahap tertinggi. Pensampelan semula imej tidak termasuk dalam proses ini. Aliran objek memerlukan PDF 1.5. Jika penerima secara jelas memerlukan versi PDF yang lebih lama, arahan ini tidak boleh digunakan begitu sahaja.
QPDF juga boleh mengoptimumkan imej dan mengekod semula data JPEG dengan kualiti yang boleh dipilih. Pilihan kualiti JPEG tersedia mulai versi 12.1. Kedua-duanya melibatkan kehilangan kualiti dan boleh menjejaskan lagi kualiti imej JPEG yang telah dimampatkan. Gunakannya hanya jika anda akan menyemak imej secara khusus selepas itu.
Ghostscript: tulis semula PDF menggunakan pratetap
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOutputFile="optimiert-gs.pdf" "original.pdf"-sDEVICE=pdfwrite memilih output PDF, -sOutputFile menetapkan nama fail baharu, dan fail input diletakkan pada penghujung. -dBATCH dan -dNOPAUSE menghalang Ghostscript daripada menunggu input. -dSAFER turut digunakan seperti ini dalam contoh panduan baris perintah Ghostscript. Pratetap /ebook hanyalah titik permulaan, bukan cadangan untuk setiap fail.
Fahami pratetap Ghostscript dengan betul
Dengan -dPDFSETTINGS, anda memilih sekumpulan parameter individu serentak. Nama pratetap menerangkan tujuan penggunaannya. Ia tidak mewakili tahap kualiti atau jumlah penjimatan tertentu.
Jadi, adakah /prepress memberikan kualiti terbaik? Tidak. Manual menyatakan dengan jelas bahawa /prepress bukan tetapan yang paling setia kepada fail asal. Tanpa -dPDFSETTINGS, hasil mungkin lebih hampir kepada fail asal. /prepress juga tidak menjamin fail yang paling kecil.
Nilai sasaran bagi /screen dan /ebook tidak bermakna setiap imej selepas itu mempunyai tepat 72 atau 150 dpi. Resolusi imej di bawah ambang tidak dikurangkan dan kekal seperti asal. Namun, ini tidak semestinya bermakna imej itu langsung tidak berubah kerana parameter pratetap lain, misalnya pengekodan imej atau warna, masih boleh mengubahnya. Pilihan -r bukan pengganti pengurangan resolusi. Ia hanya mengawal resolusi apabila Ghostscript perlu merender bahagian tertentu sebagai kaedah gantian dan tidak mengecilkan imej terbenam. Menurut manual, menetapkan parameter individu secara khusus selalunya lebih baik daripada bergantung pada pratetap.
Jangan gunakan satu pratetap untuk semua fail. Dokumen teks, katalog foto dan imbasan memberikan tindak balas yang berbeza. Untuk imbasan, sebaik-baiknya mulakan penambahbaikan semasa mengimbas. Caranya diterangkan dalam panduan Kecilkan PDF imbasan.
Semak teks, pautan, borang dan tandatangan
PDF yang kelihatan sama selepas pemampatan tidak membuktikan bahawa semua kandungan yang disimpan telah dikekalkan. Ghostscript membina semula fail. Menurut penerangan Ghostscript tentang pengoptimuman PDF, rupa yang sama boleh menyembunyikan perubahan pada arahan dan metadata. Selepas menggunakan QPDF juga, semak fungsi yang penting untuk anda:
- Pilih dan salin teks serta cuba fungsi carian.
- Klik pautan dan penanda buku.
- Isi medan borang dan cuba menyimpannya jika fail itu ialah borang.
- Semak maklumat seperti tajuk atau pengarang jika penerima menilainya.
- Jika piawaian tertentu seperti PDF/A diperlukan, semaknya menggunakan alat yang direka untuk tujuan itu. Tiada arahan di sini menjamin status tersebut.
PDF yang ditandatangani secara digital
Tiada satu pun daripada kedua-dua arahan boleh menjamin bahawa tandatangan digital masih sah selepas fail ditulis semula. Oleh itu, pemampatan bukan cara untuk mengecilkan PDF yang ditandatangani. Kekalkan fail asal yang ditandatangani tanpa perubahan. Jika orang lain menandatangani dokumen itu dan anda memerlukan versi yang lebih kecil, dapatkan fail asal yang belum ditandatangani atau berbincang dengan penandatangan. Selaraskan penandatanganan semula dengan pihak yang mengeluarkan dokumen atau penerima. Maklumat latar belakang tersedia dalam penerangan Adobe tentang sekatan PDF yang ditandatangani. Tandatangan yang diimbas dan kelihatan pada halaman bukan tandatangan digital.
Membuang perlindungan kata laluan atau sekatan penyuntingan bukan sebahagian daripada pengecilan fail, dan tiada arahan untuk tujuan itu di sini. Sebaliknya, minta pengirim memberikan versi yang sesuai. Maklumat lanjut tentang pengendalian dokumen sedemikian terdapat dalam panduan Memahami tandatangan dan borang.
Bandingkan saiz hasil dan simpan fail asal
Arahan yang selesai tanpa mesej ralat belum memberikan maklumat tentang hasilnya. Bandingkan saiz tepat fail asal dan fail output dalam bait, bukan sekadar nilai MB yang dibundarkan. Kira peratus penjimatan anda menggunakan kalkulator kadar pemampatan.
Semak sintaks dan bilangan halaman
qpdf "optimiert-qpdf.pdf" --checkQPDF melaporkan semakan tanpa ralat dengan kod pulangan 0, ralat dengan 2 dan amaran dengan 3. Semakan ini hanya meliputi struktur fail. Ia tidak menunjukkan sama ada borang, pautan dan imej masih berfungsi serta kelihatan seperti sebelumnya.
qpdf "optimiert-qpdf.pdf" --show-npagesSemak dalam pemapar PDF
- Buka semula fail output yang disimpan daripada foldernya.
- Semak semua halaman dan bandingkan format halaman serta orientasinya dengan fail asal.
- Periksa imej, tulisan kecil dan garisan halus pada pembesaran tinggi.
- Uji carian, pautan dan borang seperti yang diterangkan dalam bahagian sebelumnya.
- Jika boleh, buka fail itu dalam pemapar kedua juga.
Lebih besar, tidak berubah atau kosong?
Ghostscript juga boleh menjadikan PDF lebih besar. Fail dibina semula dan dikodkan dengan cara berbeza, dan arahan baharu kadangkala memerlukan lebih banyak ruang daripada yang lama. QPDF juga mungkin tidak banyak membantu jika fail sudah disimpan dengan padat.
Hasil yang lebih besar atau hanya sedikit lebih kecil tetap boleh menjadi hasil yang sah. Sama ada ia sah hanya dapat dipastikan melalui semakan fail tersimpan yang sama seperti bagi output lain kerana saiz sahaja tidak menunjukkan ralat atau kehilangan fungsi. Akhirnya, simpan fail yang lebih sesuai; selalunya fail itu ialah fail asal. Keadaannya berbeza bagi output yang kosong, tidak boleh dibaca atau rosak. Itu ialah percubaan yang gagal, bukan pemampatan yang luar biasa kuat. Jangan hantar fail tersebut; baca mesej dalam terminal dan mulakan semula dengan fail asal serta nama output baharu.
Jika PDF masih terlalu besar untuk had penerima, langkah seterusnya tersedia dalam panduan PDF tidak menjadi lebih kecil. Dalam apa jua keadaan, simpan fail asal sehingga versi baharu telah sampai dan diterima.