Bagaimana saya bisa mengubah serangkaian gambar ke PDF dari baris perintah di linux? [Tutup]

216

Saya memiliki server pemindaian yang saya tulis dalam cgi / bash dan ingin dapat mengonversi banyak gambar (semua dalam satu folder) ke pdf dari baris perintah. Bagaimana itu bisa dilakukan?

Jakob Weisblat
sumber
7
Gunakan img2pdf , bukan ImageMagick. ImageMagick menerjemahkan JPEG, menghasilkan kehilangan generasi dan 10-100 kali lebih lambat dari img2pdf.
Robert Fleming
1
sudo apt-get install gscan2pdf untuk penggunaan yang sederhana dan mudah.
M Haziq
1
img2pdf $(find . -iname '*.jpg' | sort -V) -o ./document.pdfakan memberi Anda document.pdfberisi semua gambar dengan ekstensi jpg atau JPG dalam direktori saat ini - satu gambar per halaman. document.pdfakan memiliki semua gambar dipesan sebagai halaman secara alami ( -Vopsi untuk sort) sehingga tidak perlu menambahkan nol terkemuka saat penomoran file gambar.
Jimmix

Jawaban:

411

Dengan menggunakan imagemagick , Anda dapat mencoba:

convert page.png page.pdf

Atau untuk banyak gambar:

convert page*.png mydoc.pdf
Marvin Pinto
sumber
7
bagaimana jika halaman * .png tidak mengurutkan gambar seperti yang Anda inginkan? misalnya page_1.png, page_2.png ... page_10.png -> page_10 akan muncul sebelum page_1
vcarel
38
Untuk mengurutkan file, Anda dapat menggunakan:ls page*.png | sort -n | tr '\n' ' ' | sed 's/$/\ mydoc.pdf/' | xargs convert
GaloisPlusPlus
26
FYI Anda hampir tidak perlu menggunakan lsapa pun selain menampilkan file ... yaitu jangan parsing outputnya. findadalah alat yang jauh lebih cocok. Berikut ini sebuah contoh convert $(find -maxdepth 1 -type f -name 'page*.png' | sort -n | paste -sd\ ) output.pdf. Perlu diingat bahwa perintah yang disebutkan di atas tidak akan berfungsi jika nama path Anda berisi spasi. Penambahan karakter yang perlu melarikan diri membuat hal-hal sedikit lebih rumit.
Enam
20
Ini sederhana dan bekerja dengan sangat baik, terima kasih! Untuk menghindari menghasilkan file PDF convert -compress jpeg -quality 85 *.png out.pdf
berukuran
13
ImageMagick menerjemahkan JPEG, yang mengakibatkan hilangnya generasi . Gunakan img2pdf sebagai gantinya; itu juga 10-100 kali lebih cepat.
Robert Fleming