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?
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:
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
13
Gunakan convertdari http://www.imagemagick.org . (Mudah disediakan sebagai paket di sebagian besar distribusi Linux.)
sudo apt-get install gscan2pdf
untuk penggunaan yang sederhana dan mudah.img2pdf $(find . -iname '*.jpg' | sort -V) -o ./document.pdf
akan memberi Andadocument.pdf
berisi semua gambar dengan ekstensi jpg atau JPG dalam direktori saat ini - satu gambar per halaman.document.pdf
akan memiliki semua gambar dipesan sebagai halaman secara alami (-V
opsi untuksort
) sehingga tidak perlu menambahkan nol terkemuka saat penomoran file gambar.Jawaban:
Dengan menggunakan imagemagick , Anda dapat mencoba:
Atau untuk banyak gambar:
sumber
ls page*.png | sort -n | tr '\n' ' ' | sed 's/$/\ mydoc.pdf/' | xargs convert
ls
apa pun selain menampilkan file ... yaitu jangan parsing outputnya.find
adalah alat yang jauh lebih cocok. Berikut ini sebuah contohconvert $(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.convert -compress jpeg -quality 85 *.png out.pdf
Gunakan
convert
dari http://www.imagemagick.org . (Mudah disediakan sebagai paket di sebagian besar distribusi Linux.)sumber