Comment puis-je convertir une série d'images en PDF à partir de la ligne de commande sur Linux? [fermé]
216
J'ai un serveur de numérisation que j'ai écrit en cgi / bash et je veux pouvoir convertir un tas d'images (le tout dans un dossier) en pdf à partir de la ligne de commande. Comment cela peut-il être fait?
Utilisez img2pdf , pas ImageMagick. ImageMagick décode le JPEG, entraînant une perte de génération et est 10 à 100 fois plus lent que img2pdf.
Robert Fleming
1
sudo apt-get install gscan2pdf pour une utilisation simple et facile.
M Haziq
1
img2pdf $(find . -iname '*.jpg' | sort -V) -o ./document.pdfvous donnera document.pdfcontenant toutes les images avec l'extension jpg ou JPG dans le répertoire actuel - une image par page. document.pdftoutes les images seront classées en pages naturellement ( -Voption pour sort), il n'est donc pas nécessaire d'ajouter de zéros de tête lors de la numérotation des fichiers image.
et si page * .png ne trie pas les images comme vous le souhaitez? par exemple page_1.png, page_2.png ... page_10.png -> page_10 apparaîtra avant page_1
vcarel
38
Pour trier les fichiers, vous pouvez utiliser:ls page*.png | sort -n | tr '\n' ' ' | sed 's/$/\ mydoc.pdf/' | xargs convert
GaloisPlusPlus
26
Pour info, vous n'avez presque jamais besoin d'utiliser lsautre chose que d'afficher des fichiers ... c'est-à-dire ne pas analyser sa sortie. findest un outil beaucoup plus adapté. Voici un exemple convert $(find -maxdepth 1 -type f -name 'page*.png' | sort -n | paste -sd\ ) output.pdf. Gardez à l'esprit que la commande susmentionnée ne fonctionnera pas si vos chemins d'accès contiennent des espaces. L'ajout de personnages à échapper rend les choses un peu plus compliquées.
Six
20
C'est simple et ça marche très bien, merci! Pour éviter de générer d'énormes fichiers PDF, utilisez quelque chose commeconvert -compress jpeg -quality 85 *.png out.pdf
jlh
13
ImageMagick décode le JPEG, entraînant une perte de génération . Utilisez plutôt img2pdf ; il est également 10 à 100 fois plus rapide.
Robert Fleming
13
Utilisez convertdepuis http://www.imagemagick.org . (Facilement fourni sous forme de package dans la plupart des distributions Linux.)
sudo apt-get install gscan2pdf
pour une utilisation simple et facile.img2pdf $(find . -iname '*.jpg' | sort -V) -o ./document.pdf
vous donneradocument.pdf
contenant toutes les images avec l'extension jpg ou JPG dans le répertoire actuel - une image par page.document.pdf
toutes les images seront classées en pages naturellement (-V
option poursort
), il n'est donc pas nécessaire d'ajouter de zéros de tête lors de la numérotation des fichiers image.Réponses:
En utilisant imagemagick , vous pouvez essayer:
Ou pour plusieurs images:
la source
ls page*.png | sort -n | tr '\n' ' ' | sed 's/$/\ mydoc.pdf/' | xargs convert
ls
autre chose que d'afficher des fichiers ... c'est-à-dire ne pas analyser sa sortie.find
est un outil beaucoup plus adapté. Voici un exempleconvert $(find -maxdepth 1 -type f -name 'page*.png' | sort -n | paste -sd\ ) output.pdf
. Gardez à l'esprit que la commande susmentionnée ne fonctionnera pas si vos chemins d'accès contiennent des espaces. L'ajout de personnages à échapper rend les choses un peu plus compliquées.convert -compress jpeg -quality 85 *.png out.pdf
Utilisez
convert
depuis http://www.imagemagick.org . (Facilement fourni sous forme de package dans la plupart des distributions Linux.)la source