Question Outil de ligne de commande pour rogner les fichiers PDF


Je cherche un outil en ligne de commande open source pour recadrer 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.


80
2018-04-24 08:47


origine


Pouvez-vous s'il vous plaît décrire quel type de recadrage vous pouvez faire avec Adobe Acrobat pro? Parce que je ne l'ai pas et ne peux donc pas dire ce que vous cherchez. - xubuntix
Dans Adobe Acrobat Pro, nous pouvons utiliser les contrôles de marge pour rogner le PDF. nous pouvons fournir la valeur pour le haut, le bas, la droite et la gauche pour recadrer - Rakesh


Réponses:


Je vous suggère de regarder PDFcrop.

Si vous souhaitez recadrer un pdf avec les 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 réellement quelque chose, utilisez des valeurs négatives dans l'argument de crop. Par exemple,

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

cultures 50 pts à gauche, en haut, à droite, en bas (dans cet ordre).

Si vous ne lancez que la commande pdfcrop input, il va sortir un fichier intitulé input-crop.pdf avec des marges nulles. Je trouve cela très pratique lorsque vous incluez des illustrations pdf dans des documents.

Recadrage de plusieurs fichiers

Malheureusement, pdfcrop ne peut pas recadrer plusieurs fichiers à la fois. Il est cependant facile d'écrire un script qui recadre tous les fichiers PDF dans le 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 les éléments suivants:

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

Enregistrez-le et fermez-le. Puis faites un clic droit sur le fichier, allez à Propriétés> Autorisations et vérifier le champ 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 Run in Terminal. Et nouvelle version recadrée à marge nulle de tous les fichiers PDF avec suffixe -surgir sera maintenant imprimé dans le dossier. Si vous voulez des marges ou d'autres choses, vous pouvez bien sûr ouvrir le script et ajouter des arguments après pdfcrop.


102
2017-08-23 13:43



Notez qu'au lieu de spécifier des marges négatives, on peut aussi utiliser --bbox "<left> <bottom> <right> <top>". Cela permet d'utiliser l'approche pour déterminer la zone de culture décrite dans mon Réponse ci-dessous. - bluenote10
Est-il possible de dire le numéro de la page (qui doit être rogné)? - L.K.
Je crains que ce soit tout ou rien. pdfcrop --help liste les options disponibles. Je ne vois rien là-bas qui permettrait de spécifier une gamme de pages. - Rasmus
En comparant la taille de la sortie de PDFCrop à son entrée, il semble que pdfcrop ne modifie que les cadres de sélection. Il ne supprime pas les données. Ainsi, cette approche ne serait pas appropriée pour réduire la taille du fichier PDF ou masquer des informations. - init_js
Comme un charme! même avec les marges le pdf nécessaire! - jojo


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 en utilisant la commande de recadrage pdf en tant que:

pdfcrop input.pdf output.pdf

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

pdfcrop --margins 5 input.pdf output.pdf

qui récolte pdf avec 5 pb de chaque côté de la page


27
2018-04-13 12:22



La mesure est bp, qui est légèrement différent de pt. Voir tex.stackexchange.com/questions/8260/…. - koppor
@koppor merci, j'ai édité ma réponse. - sarigalin
Pour moi, pdfcrop a gonflé la taille du fichier de 300x (de 7 Mo à 2 Go). je devais faire gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS="/ebook" -sOutputFile=output2.pdf output.pdf ensuite, qui fixe la taille du fichier. - fiktor


Vous pouvez également recadrer des fichiers PDF simplement en utilisant 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 pour le recadrage, j'utilise gv, qui imprime 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):

crop1

Maintenant les coordonnées maximales:

crop2

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

result

Je ne sais pas comment la solution Ghostscript se compare à pdfcrop en termes de qualité et d'exactitude.


15
2018-03-03 12:38





Quand je ne peux pas faire quelque chose avec pdftk, le prochain endroit que je tourne est PDFjam, qui est un wrapper de ligne de commande pour le pdfpages Le package LaTeX (vous avez donc besoin de cela et d’une distribution TeX installée). Pour obtenir de l'aide sur son utilisation, je vous recommande l'écran d'aide habituel:

pdfjam --help

comme la page de manuel est rare et la page Web se concentre sur des exemples.

Pour recadrer un PDF, la commande dont vous avez besoin est la suivante:

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

Cela produira un fichier appelé input-cropped.pdf. L'ordre des trims devrait être à gauche, en bas, à droite, en haut \includegraphics de graphiquex.

Pour donner une idée de la façon dont cela se compare à PDFcrop, j'ai dû recadrer récemment un fichier PDF très sophistiqué. Mon original était 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 éliminaient les liens hypertexte et les signets incorporés, PDFjam avec le --keepinfo option préservait les propriétés du document (par exemple, titre, auteur, sujet).


12
2017-07-21 15:29



Remarque: cela ne supprime pas vraiment le contenu qui devient hors écran du fichier PDF, mais le masque uniquement. Identique à ce que @init_js commente dans la réponse la mieux classée. - Jan Żankowski


Si un outil graphique convient également, je recommanderais krop: http://arminstraub.com/software/krop


3
2018-05-18 13:52





Cela peut vous aider.
Ceci est conforme à la nouvelle version d'Ubuntu et à la vie. C'est Master PDF Editor. Vous pouvez l'utiliser, rogner, ajouter des trucs, etc.

Exemple:
C'est avant This is before C'est après ctrl + k enter image description here


3
2018-03-14 18:36





Vous pourriez utiliser un script pypdf de cette page. Mais dans la réponse à cette question d'échange de pile, il semble y avoir beaucoup d'options aussi.


2
2018-04-24 09:04



Je ne suis pas en mesure d’obtenir les paramètres de gauche en haut à droite. sont-ils des points, pouces, centimètres? - Rakesh
@Rakesh: Voir ma réponse pour une explication des paramètres et comment les déterminer facilement. - bluenote10