#1 Le 11/04/2021, à 11:15
- hologramo
[Résolu] lister les fichiers pdf et les convertir en jpg avec convert
Bonjour,
Je voudrais convertir les fichiers pdf d'un répertoire et les convertir à l'aide de convert, en gardant le nom du pdf.
J'ai installé ImageMagick et ai réussi à convertir plusieurs fichiers pdf à l'aide de convert -density 400 *.pdf -resize 25% -quality 92 *.jpg, mais 1) tous les fichiers n'ont pas été convertis, 2) les fichiers convertis ont pris le nom xxx1; xxx2; etc.
J'ai cherché sur le net mais n'ai rien trouvé d'intéressant. Alors je me suis dis qu'en listant les fichiers 1 par 1 et en reprenant chaque nom sauf le suffixe .pdf à une VARIABLE je pourrais ensuite appliquer la ligne de commande convert reprise ci dessus comme suit : convert -density 400 VARIABLE.pdf -resize 25% -quality 92 VARIABLE.jpg, et passer au fichier suivant.
J'ai fait de la programmation C, vba, batch, mais jamais en linux.
Pouvez-vous me donner des pistes pour ne pas devoir passer toute la documentation en revue ?
Merci d'avance,
Olivier
Dernière modification par hologramo (Le 11/04/2021, à 15:06)
Hors ligne
#2 Le 11/04/2021, à 12:28
- cqfd93
Re : [Résolu] lister les fichiers pdf et les convertir en jpg avec convert
Bonjour,
Je ne sais pas si j'ai bien compris le problème, c'est lié à la numérotation des fichiers destination ?
Pour convertir un fichier, utilise une commande du genre :
convert -density 150 -quality 100 source.pdf jpg:dest-%02d.jpg
(%02d indique une numérotation sur 2 chiffres)
Et pour appliquer ça à plusieurs fichiers une boucle du genre :
for fichier
do
ta commande imagemagick utilisant $fichier
done
− cqfd93 −
Hors ligne
#3 Le 11/04/2021, à 13:09
- hologramo
Re : [Résolu] lister les fichiers pdf et les convertir en jpg avec convert
Bonjour cqfd93,
Je n'ai pas répondu j'essayais diverses choses trouvées. Voici mon texte :
for file in *.pdf
do
echo ${file} #pour vérifier où on en est
convert -density 400 "$file" -resize 25 % - quality 100 "${file%%.*}".jpg
done
Ca fonctionne mais donne des pages noires en jpg. Il est vrai que je maîtrise pas les arguments de convert.... Et ça va me permettre de convertir une partie des fichiers pdf.
Je vais essayer ta commande
convert -density 150 -quality 100 source.pdf jpg:dest-%02d.jpg
Et je reviens.
Merci pour ta réponse
Hors ligne
#4 Le 11/04/2021, à 13:13
- hologramo
Re : [Résolu] lister les fichiers pdf et les convertir en jpg avec convert
J'ai essayé
convert -density 150 -quality 100 source.pdf jpg:dest-%02d.jpg
Mais ça ne donne rien...
Hors ligne
#5 Le 11/04/2021, à 14:58
- cqfd93
Re : [Résolu] lister les fichiers pdf et les convertir en jpg avec convert
Il faut adapter source et dest aux noms de tes fichiers.
Et pour -resize 25 %, tu es sûr de l'espace entre 25 et % ?
Pour récupérer le nom du fichier sans l'extension .pdf (y'a peut-être plus simple mais c'est tout ce que j'ai pour le moment) :
name=$file | basename $file .pdf
Et tu peut utiliser $name pour spécifier les fichiers images de destination.
− cqfd93 −
Hors ligne
#6 Le 11/04/2021, à 15:05
- hologramo
Re : [Résolu] lister les fichiers pdf et les convertir en jpg avec convert
Bonjour cqfd93.
J'ai lancé mon bash et j'ai réussi à convertir +- 75% des fichiers. Il me reste à faire les manquants. J'ai un émulateur android avec X2IMG. Il converti bien mais il faut chaque fois récupérer le fichier créé dans un répertoire spécifique ce qui oblige à des manip supplémentaires. J'ai encore une 30aine de fichiers à convertir, ça ira.
Merci pour ton aide rapide.
Olivier
Hors ligne
#7 Le 11/04/2021, à 15:22
- cqfd93
Re : [Résolu] lister les fichiers pdf et les convertir en jpg avec convert
Tu peux citer en entier ton bash ?
Mais pourquoi tous les fichiers ne sont pas convertis ?
− cqfd93 −
Hors ligne
#8 Le 11/04/2021, à 22:03
- hologramo
Re : [Résolu] lister les fichiers pdf et les convertir en jpg avec convert
Le bash de départ :
#!/bin/bash
for file in *.pdf
do
echo ${file}
convert -density 400 "$file" -resize 25% -quality 100 "${file%%.*}".jpg
done
Les jpg noirs étaient produits pour les pdf de plusieurs pages et pour certains pdf d'une page dont je crois qu'ils étaient trop lourds.
J'ai réussi à produire les bons jpg en rajoutant les paramètres : -background white -alpha remove en plus avec le bash ci-dessous :
#!/bin/bash
for file in *.pdf
do
echo ${file}
convert -density 400 "$file" -resize 25% -quality 100 -background white -alpha remove "${file%%.*}".jpg
done
La ligne echo n'est là que pour suivre la production des jpg.
Voili voilà.
Comme dirait Yoda : content je suis.
Merci de ton attention.
Hors ligne