Saat ini saya menggunakan ImageMagick untuk mengonversi PDF ke gambar raster JPEG. Ini sangat lambat dan menghabiskan banyak memori.
Perintah yang saya gunakan adalah:
convert -geometry 1024x768 -density 200 -colorspace RGB foo.pdf bar%02d.jpg
Saya kira itu lambat karena menggunakan Ghostscript. Tetapi harus ada cara yang lebih cepat untuk melakukannya pada kotak Linux.
Adakah yang menemukan solusi yang lebih baik?
pdf
imagemagick
ghostscript
mat3001
sumber
sumber
Jawaban:
Menggunakan Ghostscript secara langsung (alih-alih menggunakan
convert
perintah ImageMagick , yang memanggil Ghostscript secara tidak langsung) memang lebih cepat. Dan itu memberi Anda lebih banyak kontrol tentang parameter konversi. Mencobadimana
-o
: menentukan jalur keluaran + nama file (dan menghemat penggunaan-dBATCH -dNOPAUSE
)-dJPEGQ
: menetapkan kualitas JPEG menjadi 95%-r
: mengatur resolusi ke 600dpi-g
: mengatur ukuran gambar ke 4960x7016px-sDEVICE
: mengatur output sebagai JPEGPerintah ini mungkin akan memperlambat Anda dan membuat file lebih besar dari yang diharapkan. Untuk ukuran file yang lebih kecil dan eksekusi yang lebih cepat coba ini (yang mungkin mendekati kualitas output dari
convert
commandline Anda ):atau bahkan
(yang memberikan resolusi 72dpi, seringkali cukup baik untuk sebagian besar layar dan untuk sebagian besar aplikasi web).
sumber
BTW, salah satu alasan ImageMagick jauh lebih lambat adalah karena memanggil Ghostscript dua kali. Itu tidak mengonversi PDF => PNG dalam sekali jalan, tetapi menggunakan 2 langkah berbeda:
PDF => PostScript
konversi;PostScript => PNG
konversi.Anda dapat mempelajari tentang pengaturan rinci "delegasi" ImageMagick (program eksternal yang digunakan ImageMagick, seperti Ghostscript) dengan mengetik
(Di sistem saya itu adalah daftar 32 perintah yang berbeda.) Sekarang untuk melihat perintah mana yang digunakan untuk mengkonversi ke PNG, gunakan ini:
Ok, ini untuk Linux. Jika Anda menggunakan Windows, coba ini:
Anda akan menemukan bahwa IM menghasilkan PNG hanya dari input PS atau EPS. Jadi bagaimana cara IM (E) PS dari PDF Anda? Mudah:
Ah! Ia menggunakan Ghostscript untuk membuat konversi PDF => PS, kemudian menggunakan Ghostscript lagi untuk membuat konversi PS => PNG. Bekerja, tetapi bukan cara paling efisien jika Anda tahu bahwa Ghostscript dapat melakukan PDF => PNG dalam sekali jalan. Dan lebih cepat. Dan dalam kualitas yang jauh lebih baik.
Tentang penanganan IM konversi PDF ke gambar melalui delegasi Ghostscript Anda harus mengetahui dua hal pertama dan terutama:
-density 600
sebagaiconvert
parameter yang memberitahu Ghostscript untuk menggunakan resolusi 600 dpi untuk output gambarnya.PDF => PS
dan kemudianPS => PNG
merupakan kesalahan nyata. Karena Anda tidak pernah menang dan harldy menjaga kualitas pada langkah pertama, tetapi sangat sering kehilangan beberapa. Alasan:(Konversi dalam arah yang berlawanan
PS => PDF
,, karenanya tidak begitu penting ....)Itu sebabnya saya menyarankan Anda mengonversi PDF Anda dalam sekali jalan ke PNG (atau JPEG) menggunakan Ghostscript secara langsung. Dan gunakan versi terbaru 8.71 (akan segera dirilis: 9.00) dari Ghostscript ...
sumber
Program
pdftoppm
dari paket poppler juga dapat membuat JPEG, dan bagi saya itu sekitar dua kali lebih cepat menggunakangs
seperti yang dijelaskan di atas:sumber
Dalam pengalaman saya, MuPDF jauh lebih cepat daripada Ghostscript. Ini adalah proyek yang jauh lebih baru tanpa banyak kesalahan di gs. Coba jika cocok untuk penggunaan Anda!
mudraw -w 1024 -h 768 -r 200 -c rgb -o bar%d.png foo.pdf
Jika Anda memiliki distribusi linux yang lebih lama dan menginstal mupdf-tools dari repositori,
mudraw
mungkin masih dipanggilpdfdraw
Anda kemudian harus mengkonversi png ke jpeg menggunakan misalnya imagemagick. Tetapi itu masih akan lebih cepat dari Ghostscript.
sumber