D'habitude, je suis assez content d'utiliser pdfcrop
, même si la sortie recadrée consomme généralement beaucoup plus d'espace disque. Notez que le code comparable existe , ce qui résout et résout ce problème. Toutefois, si je souhaite recadrer un fichier PDF numérisé (image), j’ai l’impression que pdfcrop
échoue tout simplement. J'imagine que ImageMagick
est capable de faire l'affaire, éventuellement en nous rendant (--- également) de pdftk
.
Je recherche un code unique efficace (un script multiligne conviendrait également ...) pour rogner un fichier PDF de haut en bas, de gauche à droite et de x cm (ou, mieux, pourtant, par abcd cm, individuellement), allant de input.pdf à output.pdf.
ps: la solution ne doit pas nécessairement impliquer ImageMagick
; Je suis heureux tant que ça marche (proprement, de manière fiable et efficace) ...;)
Le crédit total est dû à AlexG qui, accessoirement en passant a posté une solution à ce problème ici , qui, par souci d'exhaustivité et afin qu'il ne se perde pas (!), je cite ci-dessous.
La question de rognage décrite dans la man
:
Exemples d'utilisation:
#default operation pdfcrop.sh orig.pdf cropped.pdf pdfcrop.sh -m 10 orig.pdf cropped.pdf pdfcrop.sh -hires orig.pdf cropped.pdf #trimming pages pdfcrop.sh -t "10 20 30 40" orig.pdf trimmed.pdf
Contenu de
pdfcrop.sh
:#!/bin/bash function usage () { echo "Usage: `basename $0` [Options] <input.pdf> [<output.pdf>]" echo echo " * Removes white margins from each page in the file. (Default operation)" echo " * Trims page edges by given amounts. (Alternative operation)" echo echo "If only <input.pdf> is given, it is overwritten with the cropped output." echo echo "Options:" echo echo " -m \"<left> [<top> [<right> <bottom>]]\"" echo " adds extra margins in default operation mode. Unit is bp. A single number" echo " is used for all margins, two numbers \"<left> <top>\" are applied to the" echo " right and bottom margins alike." echo echo " -t \"<left> [<top> [<right> <bottom>]]\"" echo " trims outer page edges by the given amounts. Unit is bp. A single number" echo " is used for all trims, two numbers \"<left> <top>\" are applied to the" echo " right and bottom trims alike." echo echo " -hires" echo " %%HiResBoundingBox is used in default operation mode." echo echo " -help" echo " prints this message." } c=0 mar=(0 0 0 0); tri=(0 0 0 0) bbtype=BoundingBox while getopts m:t:h: opt do case $opt in m) eval mar=($OPTARG) [[ -z "${mar[1]}" ]] && mar[1]=${mar[0]} [[ -z "${mar[2]}" || -z "${mar[3]}" ]] && mar[2]=${mar[0]} && mar[3]=${mar[1]} c=0 ;; t) eval tri=($OPTARG) [[ -z "${tri[1]}" ]] && tri[1]=${tri[0]} [[ -z "${tri[2]}" || -z "${tri[3]}" ]] && tri[2]=${tri[0]} && tri[3]=${tri[1]} c=1 ;; h) if [[ "$OPTARG" == "ires" ]] then bbtype=HiResBoundingBox else usage 1>&2; exit 0 fi ;; \?) usage 1>&2; exit 1 ;; esac done shift $((OPTIND-1)) [[ -z "$1" ]] && echo "`basename $0`: missing filename" 1>&2 && usage 1>&2 && exit 1 input=$1;output=$1;shift; [[ -n "$1" ]] && output=$1 && shift; ( [[ "$c" -eq 0 ]] && gs -dNOPAUSE -q -dBATCH -sDEVICE=bbox "$input" 2>&1 | grep "%%$bbtype" pdftk "$input" output - uncompress ) | Perl -w -n -s -e ' BEGIN {@m=split /\s+/, $mar; @t=split /\s+/, $tri;} if (/BoundingBox:\s+([\d\.\s]+\d)/) { Push @bbox, $1; next;} elsif (/\/MediaBox\s+\[([\d\.\s]+\d)\]/) { @mb=split /\s+/, $1; next; } elsif (/pdftk_PageNum\s+(\d+)/) { $p=$1-1; if($c){ $mb[0]+=$t[0];$mb[1]+=$t[1];$mb[2]-=$t[2];$mb[3]-=$t[3]; print "/MediaBox [", join(" ", @mb), "]\n"; } else { @bb=split /\s+/, $bbox[$p]; $bb[0]+=$mb[0];$bb[1]+=$mb[1];$bb[2]+=$mb[0];$bb[3]+=$mb[1]; $bb[0]-=$m[0];$bb[1]-=$m[1];$bb[2]+=$m[2];$bb[3]+=$m[3]; print "/MediaBox [", join(" ", @bb), "]\n"; } } print; ' -- -mar="${mar[*]}" -tri="${tri[*]}" -c=$c | pdftk - output "$output" compress
Vous pouvez essayer anglais. C'est assez simple, mais fait le travail. C'est une application graphique cependant.
Téléchargez le fichier Zip et extrayez-le dans un dossier de votre choix et lancez-le:
Java -jar briss-0.9.jar
Pour l'installer de manière permanente et à l'échelle du système et pouvoir le démarrer de n'importe où avec juste briss
, vous devez décompresser le téléchargement dans /usr/local/lib/
, puis créer un fichier exécutable /usr/local/bin/briss
contenant:
#!/bin/sh
Java -jar /usr/local/lib/briss-0.9/briss-0.9.jar
Ceci est le meilleur et le plus facile et a une merveilleuse interface graphique: Krop
Téléchargez deb de l'auteur: http://arminstraub.com/computer/krop
Examen: http://www.hecticgeek.com/2013/08/crop-pdf-ubuntu-13-04-krop/
Edit: J'utilise krop depuis 13.10 et j'ai remarqué que les dernières versions ont commencé à prendre en charge l'ouverture d'un fichier PDF avec krop via un clic droit. J'ai également basculé vers la version instantanée depuis qu'elle est disponible et prend également en charge le clic droit, confirmé les 18.10 et 19.04. L’interface graphique n’est pas aussi colorée avec la version instantanée, mais les fonctionnalités sont les mêmes:
Sudo snap install krop