Je cherche un outil de ligne de commande open source pour rogner le fichier PDF comme nous pouvons le faire dans Adobe Acrobat Pro. J'ai essayé PdfTk, ImageMagick, PyPDF et GhostScript, tous sans succès jusqu'à présent.
Je vous suggère de jeter un oeil à 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
cultures 50 pts 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.
Recadrer 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. Cliquez ensuite avec le bouton droit sur le fichier, accédez à Propriétés> Autorisations , puis 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
.
Merci à Rasmus, vous pouvez installer pdfcrop à partir du paquet texlive-extra-utils:
Sudo apt-get install texlive-extra-utils
Recadrez ensuite les fichiers pdf en utilisant la commande de recadrage pdf en tant que:
pdfcrop input.pdf output.pdf
utilisez --help
pour voir d'autres paramètres tels que --margins
pdfcrop --margins 5 input.pdf output.pdf
quelle culture pdf avec 5 pb de chaque côté de la page
Vous pouvez également rogner les fichiers PDF simplement à l'aide de Ghostscript. J'ai écrit un petit script pour simplifier le processus (inspiré par 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 en utilisant les mêmes unités que Ghostscript. Par exemple, ici, je détermine les coordonnées minimales pour x/y (les valeurs dans le coin supérieur gauche):
Maintenant les coordonnées maximales:
Et enfin, je lance le script pdf_crop_by_coordinates.sh test.pdf 45 429 38 419
qui produit un test_cropped.pdf
qui ressemble à ceci:
Cependant, je ne sais pas du tout comment la solution Ghostscript se compare à pdfcrop
en termes de qualité et d’exactitude.
Quand je ne peux pas faire quelque chose avec pdftk, le prochain endroit que je me tourne est PDFjam , qui est un wrapper de ligne de commande pour le paquet pdfpages LaTeX (vous avez donc également besoin de et une distribution TeX installée). Pour obtenir de l'aide sur son utilisation, je recommande l'écran d'aide régulier:
pdfjam --help
car la page de manuel est clairsemé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
Cela produira un fichier appelé input-cropped.pdf
. L'ordre des garnitures doit être à gauche, en bas, à droite, en haut, conformément à \includegraphics
from graphicx .
Pour vous donner une idée de la comparaison avec PDFcrop, j’ai eu raison de recadrer un PDF assez sophistiqué récemment. 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. Tandis que PDFjam et PDFcrop supprimaient les liens hypertexte et les signets incorporés, PDFjam avec l'option --keepinfo
préservait les propriétés du document (par exemple, titre, auteur, sujet).
Si un outil graphique convient également, je recommande krop
: http://arminstraub.com/software/krop
Cela peut vous aider.
Ceci est conforme à la nouvelle version d’Ubuntu et de la vie. C'est Maître PDF éditeur . Vous pouvez l'utiliser pour rogner, ajouter des trucs, etc.
Vous pouvez utiliser un script pypdf de cette page . Mais dans la réponse à cette question de stackexchange , il semble y avoir beaucoup d'options aussi.
Briss n'est pas une ligne de commande, mais mérite un coup d'oeil.
Le programme pdfCropMargins est une application en ligne de commande permettant de rogner automatiquement les marges des fichiers PDF.
Ce programme dépend du programme Ghostscript ou du programme pdftoppm en cours d'installation (et localisable) sur le système. Et analysez les images de page avec PIL pour trouver des cadres de sélection, en utilisant le seuil 191.
installer en utilisant
pip installer pdfCropMargins
Courir en utilisant
pdf-crop-margins -v -s -u votre-fichier.pdf
Pour aider
pdf-crop-margins -h | plus