GNU/Linux >> Belajar Linux >  >> Linux

Batch mengubah ukuran dan mengompres file PDF

Jadi convert dari ImageMagick akan menghasilkan PDF raster dan banyak orang akan tertarik untuk menjaga grafik vektor dan teks tidak tersentuh sehingga hanya gambar yang disematkan yang dikompresi. Alternatif yang baik untuk membuat kompresi adalah menggunakan gs dari paket ghostscript contoh penggunaan:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=out.pdf in.pdf

dalam parameter perintah di atas:-dPDFSETTINGS=/ebook penting. Ini dapat memiliki 3 nilai:

-dPDFSETTINGS=/screen   (screen-view-only quality, 72 dpi images)
-dPDFSETTINGS=/ebook    (low quality, 150 dpi images)
-dPDFSETTINGS=/printer  (high quality, 300 dpi images)
-dPDFSETTINGS=/prepress (high quality, color preserving, 300 dpi imgs)
-dPDFSETTINGS=/default  (almost identical to /screen)

Saya menyarankan alat baris perintah di sini, yang dapat dengan mudah digabungkan dengan loop dalam bahasa skrip bawaan di Windows, Linux, OS X, dll.

ImageMagick mendukung PDF dan memiliki resize opsi dengan alat konversinya. Saya tidak pernah menggunakannya secara pribadi, tetapi Anda dapat mencoba bermain-main dengan itu.

Anda juga dapat menggunakan compress opsi (ada contohnya di sini):

Memutar PDF

$ convert -rotate 270 -density 300x300 -compress lzw in.pdf out.pdf

Ini mengasumsikan PDF yang didukung TIFF. Parameter densitas penting karena jika tidak ImageMagick mengambil sampel gambar (untuk beberapa alasan). Menambahkan opsi kompresi membantu menjaga ukuran keseluruhan PDF lebih kecil, tanpa kehilangan kualitas.

Untuk PDF multi halaman, Anda mungkin ingin menggunakan pdftk , lalu gunakan mogrify dari ImageMagick untuk mengonversi setiap halaman di tempat:

$ pdftk in.pdf burst
$ mogrify -rotate 270 -density 300x300 -compress lzw pg_*.pdf
$ pdftk pg*.pdf cat output out.pdf
$ rm pg*.pdf

Untuk mengonversi file PDF dengan ImageMagick, Anda harus menginstal GhostScript.

ImageMagick dapat mengonversi PDF multi halaman. Sedangkan mogrify akan dikonversi di tempat, saya sarankan Anda menggunakan convert sehingga Anda dapat menyimpan yang asli jika terjadi kecelakaan.

Saya telah melakukan beberapa pengujian pada sampel PDF yang Anda berikan. Ini bekerja cukup baik untuk saya:

convert -density 200 -compress jpeg -quality 20 test.pdf test2.pdf

Kepadatan default ke 72 DPI. Dengan menyetelnya lebih tinggi, kita bisa mendapatkan resolusi yang lebih tinggi dan kualitas yang dapat diterima. Itu terlihat baik-baik saja di 150 , dan sedikit lebih kecil, tetapi jika Anda ingin melayani berbagai PDF 200 harus bekerja.

Kompresi JPEG harus secara otomatis memilih level atau default ke 92 pada skala 1 ke 100 dengan 100 menjadi yang terbaik. Setting di 20 , tampilannya hampir sama bagusnya dengan aslinya (sedikit kabur dan teks kecil di bagian bawah agak sulit dibaca, tetapi pada awalnya tetap demikian).

Opsi ini menghasilkan 1,7 MB Anda sampel hingga 0,5 MB , sekaligus menjaga agar tetap dapat dibaca. Anda dapat sedikit bereksperimen.

Jika Anda menginginkan ukuran yang lebih kecil (baik file maupun gambar/PDF), Anda dapat menggunakan -resize #% , mis. -resize 75% . Pada contoh PDF Anda, ini membuat cetakan kecil di bagian bawah tidak dapat dibaca.

Jika Anda masih kekurangan ruang, terutama untuk PDF multi halaman, Anda dapat mengompres lebih lanjut dengan menambahkan file ke arsip ZIP (atau lainnya). Ini menurunkan ukuran file menjadi 0,43MB pada PDF uji itu (mengurangi kualitas kompresi JPEG memiliki efek yang jauh lebih drastis). Anda juga dapat membagi file PDF menjadi beberapa halaman dengan pdftk , seperti yang disarankan @glallen dalam hasil editnya, atau pisahkan arsip dan gabungkan kembali di ujung yang lain.

2MB juga merupakan batas lampiran yang agak kecil, Anda mungkin ingin melihat penyedia email lainnya. Dari memori, GMail menyediakan lebih dari 10MB per email.

Opsi ini, dan lainnya, didokumentasikan sepenuhnya di situs web mereka.


Linux
  1. 16 Perintah Tar untuk Kompres dan Ekstrak File di Linux

  2. Perintah Tar di Linux ( Kompres dan Dekompresi file)

  3. Gabungkan / ubah beberapa file PDF menjadi satu PDF

  1. Cara Kompres Dan Dekompresi File Di Linux

  2. Cara Mengarsipkan dan Mengompresi File di Linux

  3. Ganti Nama File Di Direktori?

  1. Kompres file PDF di Linux dengan Densify

  2. Batch mengganti nama file di baris perintah dan Xargs

  3. Batch mengonversi penyandian dalam file