Outil de ligne de commande pour rogner les fichiers PDF

83

Je recherche un outil de ligne de commande open source pour rogner un fichier PDF, comme nous pouvons le faire dans Adobe Acrobat Pro. J'ai essayé PdfTk, ImageMagick, PyPDF et GhostScript, sans succès jusqu'à présent.

    
posée Rakesh 24.04.2012 - 10:47
la source

7 réponses

105

Je vous suggère de consulter PDFcrop .

Si vous souhaitez rogner un fichier PDF avec des marges gauche, supérieure, droite et inférieure de 5, 10, 20 et 30 points (points), exécutez

.
pdfcrop --margins '5 10 20 30' input.pdf output.pdf

dans le terminal. Pour rogner quelque chose, utilisez des valeurs négatives dans l'argument de rogner. Par exemple,

pdfcrop --margins '-50 -50 -50 -50' input.pdf output.pdf

coupe 50 points de la gauche, en haut, à droite, en bas (dans cet ordre).

Si vous exécutez uniquement la commande pdfcrop input , un fichier intitulé input-crop.pdf sera généré avec des marges nulles. Je trouve cela très pratique pour inclure des illustrations pdf dans des documents.

Recadrage de plusieurs fichiers

Malheureusement, pdfcrop ne peut pas découper plusieurs fichiers à la fois. Il est cependant facile d'écrire un script qui coupera tous les fichiers PDF du dossier dans lequel se trouve le script.

Créez un nouveau fichier vide et appelez-le something.sh . Ouvrez-le avec un éditeur de texte et insérez ce qui suit:

#!/bin/bash
for FILE in ./*.pdf; do
  pdfcrop "${FILE}"
done

Enregistrez-le et fermez-le. Puis cliquez avec le bouton droit sur le fichier, accédez à Propriétés > Autorisations et cochez la case Autoriser l’exécution du fichier en tant que programme . Fermez maintenant la boîte de dialogue. Exécutez le script en double-cliquant dessus et en choisissant Exécuter dans un terminal . Et la nouvelle version recadrée sans marge de tous les fichiers PDF portant le suffixe -crop sera maintenant imprimée dans le dossier. Si vous voulez des marges ou autre chose, vous pouvez bien sûr simplement ouvrir le script et ajouter des arguments après pdfcrop .

    
réponse donnée Rasmus 23.08.2012 - 15:43
la source
29

Merci pour Rasmus, vous pouvez installer pdfcrop à partir du paquet texlive-extra-utils:

sudo apt-get install texlive-extra-utils

Recadrez ensuite les fichiers PDF à l'aide de la commande de recadrage pdf sous:

pdfcrop input.pdf output.pdf

utilisez --help pour voir des paramètres plus étonnants comme --margins

pdfcrop --margins 5 input.pdf output.pdf

quelle culture pdf avec 5 pb de chaque côté de la page

    
réponse donnée sarigalin 13.04.2014 - 14:22
la source
15

Vous pouvez également rogner des fichiers PDF simplement à l'aide de Ghostscript. J'ai écrit un petit script pour simplifier le processus (inspiré de cette réponse ):

#!/bin/bash

if [ $# -lt 5 ]
then
  echo "Usage: 'basename $0' <pdf-file> <x_min> <x_max> <y_min> <y_max>"
  echo "Notes:"
  echo " - all coordinates are absolute; no calculation of width/height necessary"
  echo " - use 'gv' to determine the coordinates"
  exit 65
fi

file="$1"
xmin="$2"
xmax="$3"
ymin="$4"
ymax="$5"

base="${file%.*}"
outfile="${base}_cropped.pdf"

echo "writing to: $outfile"

gs \
  -o $outfile \
  -sDEVICE=pdfwrite \
  -c "[/CropBox [$xmin $ymin $xmax $ymax] /PAGES pdfmark" \
  -f $file

Afin de déterminer les coordonnées de rognage, j’utilise gv , qui affiche les coordonnées du curseur de la souris avec les mêmes unités que Ghostscript. Par exemple, je détermine ici les coordonnées minimales pour x / y (les valeurs dans le coin supérieur gauche):

Maintenantlescoordonnéesmaximales:

Et enfin, je lance le script pdf_crop_by_coordinates.sh test.pdf 45 429 38 419 produisant un test_cropped.pdf qui ressemble à cela:

Cependant, je ne sais pas du tout comment la solution Ghostscript se compare à pdfcrop en termes de qualité et de correction.

    
réponse donnée bluenote10 03.03.2015 - 13:38
la source
13

Lorsque je ne peux pas utiliser quelque chose avec pdftk, je me tourne vers PDFjam , qui est une commande- Le wrapper de ligne pour le pdfpages paquet LaTeX (vous avez donc également besoin de cela et d'une distribution TeX installée). Pour obtenir de l'aide sur son utilisation, je recommande l'écran d'aide habituel:

pdfjam --help

car la page de manuel est fragmentée et la page Web se concentre sur des exemples.

Pour rogner un fichier PDF, la commande dont vous avez besoin ressemble à ceci:

pdfjam --keepinfo --trim "10mm 15mm 10mm 15mm" --clip true --suffix "cropped" input.pdf

Ceci produira un fichier appelé input-cropped.pdf . L'ordre des trims doit être défini à gauche, en bas, à droite et en haut, conformément à \includegraphics de graphicx .

Pour vous donner une idée de la façon dont il se compare à PDFcrop, j’avais eu l’occasion de recadrer un PDF assez élégant. Mon original était de 675 ko, ma version recadrée via PDFjam était de 1,2 Mo, tandis qu'une version recadrée via PDFcrop était de 4,5 Mo. Alors que PDFjam et PDFcrop ont tous deux supprimé les liens hypertexte et les signets incorporés, PDFjam avec l'option --keepinfo a préservé les propriétés du document (par exemple, titre, auteur, sujet).

    
réponse donnée Alex Ball 21.07.2015 - 17:29
la source
3

Si un outil graphique convient également, je vous recommanderais krop : link

.     
réponse donnée Sunday 18.05.2016 - 15:52
la source
3

Cela peut vous aider.
Ceci est conforme à la nouvelle version d'Ubuntu et de la vie. Il s'agit de Editeur PDF principal . Vous pouvez l'utiliser pour rogner, ajouter des éléments, etc.

Exemple:
C'est avant C'estaprèsctrl+k

    
réponse donnée Shamina 14.03.2017 - 19:36
la source
2

Vous pouvez utiliser un script pypdf de cette page . Mais dans la réponse à cette question stackexchange , il semble y en avoir beaucoup options également.

    
réponse donnée xubuntix 24.04.2012 - 11:04
la source

Lire d'autres questions sur les étiquettes