Dominique Meeùs
Dernière modification le   
retour à la table des matières — à l’index — à ma page de départ

Découper un PDF

La commande pdfcrop du paquet texlive-extra-utils permet d’ajouter ou de retirer des marges. Par exemple pdfcrop --margins '-10 -20 -30 -40' input.pdf output.pdf retire des marges de 10, 20, 30, 40 points respectivement à gauche, en haut, à droite et en bas.

On peut faire ça avec Ghostscript si on connaît les mesures du PDF. La commande

pdfinfo -box input.pdf

me donne sous forme de coordonnées, par exemple 0 0 400 600, les dimensions en points. (L’origine est dans le coin inférieur gauche.) Alors, par exemple, la commande

gs \
-sDEVICE=pdfwrite \
-o output.pdf \
-c "[/CropBox [15 20 395 590] /PAGES pdfmark" \
-f input.pdf

ou sur une ligne

gs -sDEVICE=pdfwrite -o output.pdf -c "[/CropBox [15 20 395 590] /PAGES pdfmark" -f input.pdf

retirera 15 points à gauche, 20 points en bas, 5 points à droite, 10 points en haut.

Il semble cependant que pdfmark ne fait qu’ajouter des paramètres à un PDF et que si la CropBox était déjà définie, la commande ne va pas la changer. On peut alors jouer plutôt sur la dimension de la page pour la rogner en haut et à droite (avec -g) et la translater pour rogner en bas et à gauche. Bref, quelque chose comme

gs -sDEVICE=pdfwrite -g3800x5700 -o output.pdf -c "<</Install {-15 -20 translate}>> setpagedevice" -f input.pdf

ou en plus lisible

gs \
-sDEVICE=pdfwrite \
-g3800x5700 \
-o output.pdf \
-c "<</Install {-15 -20 translate}>> setpagedevice" \
-f input.pdf

où les dimensions sont donnés en -g dans un autre ordre de grandeur que la translation. Le 15 de la translation correspond au 80 dans 3800 et le 20 au 70 dans 5700.

Dominique Meeùs . Date: 2011… 2017