Sélection de scripts pour automatiser la manipulation de vos pdfs

Salut les animaux !

Encore un article un peu spécial et un peu light aujourd’hui. Je vous propose une sélection de quelques scripts que j’utilise couramment pour manipuler les pdf. Normalement vous ne devriez rien avoir à installer !

Avant de commencer, je vais déjà vous présenter ImageMagick, car il serait dommage de ne pas connaitre ce petit bijou :

Harry Potter
La puissance de ImageMagick

ImageMagick

ImageMagick est un logiciel libre, comprenant une bibliothèque, ainsi qu’un ensemble d’utilitaires en ligne de commande, permettant de créer, de convertir, de modifier et d’afficher des images dans un très grand nombre de formats. Les images peuvent être découpées, les couleurs peuvent être modifiées, différents effets peuvent être appliqués aux images, les images peuvent subir des rotations, il est possible d’y inclure du texte, des segments, des polygones, des ellipses et des courbes de Bézier, etc.

ImageMagick est un logiciel libre (Ouf!) : sa licence est compatible avec la licence GNU GPL. Il est disponible sur la plupart des plates-formes.

(source Wikipedia)

Bref, c’est l’outil de manipulation de masse d’images pour informaticien fainéant, particulièrement adapté à l’automatisation de tâches répétitives. Vous pouvez avoir un bref aperçu d’une partie des possibilités sur la page de leur site.

Pour ceux qui ne le savent pas et qui ne veulent pas regarder mes liens, il est parfaitement possible de taper dans votre terminal :

$ convert fichier.jpg fichier.png 

Intéressant non ? Mais retournons à nos pdf.

Rq : Si cela ne marche pas, installer imagemagick et Ghost Script (au passage). Ce sont des outils que vous serez toujours heureux d’avoir sur votre machine.

Ouvrez un terminal et déplacez vous jusqu’au dossier contenant les images et/ou pdfs à manipuler (en utilisant la commande cd).

– Convertir des images en un seul pdf en appliquant une rotation si la largeur est plus grande que la longueur. Je l’utilise souvent avec mon scanner.

$ convert -rotate « -90> » ‘*.jpg’ ‘OutPdf.pdf’

Rq : n’hésitez pas à changer  le sens de rotation (+ ou – 90°, ou autre).
Rq2 : le * permet de sélectionner tout les fichiers .jpg

– Assembler plusieurs fichiers .pdf en un seul avec Ghost Script (Ghost Script étant La référence en matière de manipulation des pdf et ps).

$ gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=final.pdf *.pdf

– Convertir un dossier de photo en pdf avec réduction à 80% sans surchager la RAM (chaque conversion est séparée et l’assemblage réalisé par GS).

$ mkdir Output; j=10; for i in *.jpg; do convert -scale 80% « $i » « Output/ »$j ».pdf »; let j++; done; gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=Output.pdf Output/*.pdf; rm -rf ‘Output’;

Et en bonus, le script dont je me sers pour les images du blog :

– Réduction et bords arrondis à partir d’un dossier de fichiers .jpg et/ou .png.

$ mkdir Output;\
for i in *.jpg; do convert $i -resize 600x Output/$i.png; done;\
for i in *.png; do convert $i -resize 600x Output/$i; done;\
cd Output;for i in *.png; do convert $i      \( +clone  -alpha extract         -draw ‘fill black polygon 0,0 0,15 15,0 fill white circle 15,15 15,0’         \( +clone -flip \) -compose Multiply -composite         \( +clone -flop \) -compose Multiply -composite      \) -alpha off -compose CopyOpacity -composite  $i; done; cd ../;

Ce ne sont évidement que des exemples et vous pouvez facilement réaliser des scripts pour toutes les tâches répétitives qui hantent vos jours. N’hésitez pas à partager vos scripts perso dans les commentaires !! Si cela vous plaît, je mettrai régulièrement des sélections de scripts dans ce genre sur différents sujets.

La semaine prochaine, début d’une série de billets sur la personnalisation du terminal (du très très lourd !). J’espère que ça vous plaira.

@4nti7rust

Source : Image


3 Responses

  1. Noireaude Moo 5 août 2012 / 11 h 18 min

    Ça peut être très utile aux gens qui effectuent souvent la même tâche. Perso j’adore me faire ou utiliser des petits scrits ou des petites commandes de ce style.

    C’est un gain de temps considérable.

  2. 4nti7rust 5 août 2012 / 11 h 08 min

    Merci :)

    Perso je m’en suis servi des 10éne de fois.

    Je ne sais pas si cela servira à beaucoup de monde, mais au moins ça donne quelques idées.

  3. Noireaude Moo 5 août 2012 / 10 h 44 min

    Ouhh qu’il est beau celui là :)

Comments are closed.