10. Manipuler un pdf en ligne de commande

Préalable

Tout d’abord, il est possible que les manipulations sur des PDF réalisées à partir d’Image Magick mènes à une erreur du type :

convert-im6.q16: attempt to perform an operation not allowed by the security policy `PDF'

Ce n’est pas une erreur importante. Image Magick (IM) refuse simplement d’effectuer des opérations sur des PDF pour des raisons de sécurité. Pour lui demander de pourvoir le faire, il faut changer un élément d’une ligne d’un ficher d’IM. Pour cela, on peut utiliser vi, par exemple :

sudo vi /etc/ImageMagick-6/policy.xml

La ligne à changer est la suivante :

<policy domain="coder" rights="none" pattern="PDF" />

et mettre à la place :

<policy domain="coder" rights="read | write" pattern="PDF" />

Sans oublier finalement d’enregistrer.

Redimentionner

Pour redimensionner un lot d’images en ligne de commande, on peut utiliser Image Magick (IM). Ce paquet (à installer sur votre système) dispose d’une commande nommée :

mogrify

Cette commande est identique à « convert » mais elle remplace les fichiers sources par les fichiers modifiée, à moins qu’on lui spécifie un chemin particulier à l’aide de l’option path :

mogrify -resize 50% -quality 80 -path mon_dossier *.jpg

Cette commande diminue la taille des images du répertoire courant par deux, les compresse à 80% et les place dans le répertoire mon_dossier.

Il faut relever qu’on peut spécifier la taille en pixels : -resize 800×600 par exemple.

On peut aussi modifier la résolution

convert -units PixelsPerInch -density 300 image.jpg

Finalement, on peut utiliser une autre commande Image Magick pour obtenir des informations sur l’image :

identify -verbose image.jpg | grep Quality

Sans le -verbose, on obtient moins d’informations et le pipe (|) sur grep permet la recherche sur le mot Quality.

Voilà, évidemment un man sur mogrify ou convert vous en dira plus. La documentation d’Image Magick est disponible là : https://imagemagick.org/.

Optimiser (redimensionner la taille) d’un PDF

Pour optimiser la taille d’un pdf, on peut utiliser Imagemagick avec sa commande « convert » de la manière suivante :

convert -density 200x200 -quality 60 -compress jpeg perso.pdf output.pdf

où les arguments passés à convert définissent la résolution des images, leur qualité et le type de compression qu’on leur applique. Les choix ci-dessus permettent de réduire la taille d’un pdf de 50 Mo à 5 Mo, par exemple, soit d’un facteur 10.

Créer un pdf à partir de plusieurs fichiers jpg

Pour cela, trois commandes sont nécessaires :

cd ~/lerepertoire/contenant/lesficiers
ls *.jpg | xargs -I% convert % %.pdf
pdftk *.pdf cat output merged.pdf && rm *.jpg.pdf

En enchaînant celles-ci, on obtient un fichier « merged.pdf » qui contient toutes les pages.

Laisser un commentaire