web-dev-qa-db-fra.com

Recadrage d'un PDF à l'aide de Ghostscript 9.01

Je ne suis pas programmeur, mais j'aimerais apprendre à recadrer un PDF à l'aide de Ghostscript.

J'ai installé Ghostscript 9.01 sur ma machine.

Veuillez me guider étape par étape (à partir de l'invocation de Ghostscript) pour recadrer un PDF avec les coordonnées spécifiques.

Je suis encore nouveau sur Ghostscript.

35
AMER

Tout d'abord, notez que l'unité de mesure pour PDF est la même que pour PostScript: elle s'appelle un point [pt ].

72 points == 1 inch == 25.4 millimeters

En supposant que vous avez une taille de page A4. Les dimensions des médias sont alors:

595 points width  == 210 millimeters
842 points height == 297 millimeters

En supposant que vous souhaitiez rogner:

   left Edge: 24 points == 1/3 inch ~=  8.5 millimeters
  right Edge: 36 points == 1/2 inch ~= 12.7 millimeters
    top Edge: 48 points == 2/3 inch ~= 17.0 millimeters
 bottom Edge: 72 points ==   1 inch ~= 25.4 millimeters

Ensuite, votre ligne de commande Ghostscript est la suivante (sous Windows):

gswin32c.exe                     ^
  -o cropped.pdf                 ^
  -sDEVICE=pdfwrite              ^
  -c "[/CropBox [24 72 559 794]" ^
  -c " /PAGES pdfmark"           ^
  -f uncropped-input.pdf

Ou sous Linux:

gs                               \
  -o cropped.pdf                 \
  -sDEVICE=pdfwrite              \
  -c "[/CropBox [24 72 559 794]" \
  -c " /PAGES pdfmark"           \
  -f uncropped-input.pdf

Cependant, cela peut ne pas fonctionner de manière fiable pour tous les types de PDF  [1] . Dans ces cas, vous devriez également essayer ces commandes:

gswin32c.exe                 ^
  -o cropped.pdf             ^
  -sDEVICE=pdfwrite          ^
  -dDEVICEWIDTHPOINTS=595    ^
  -dDEVICEHEIGHTPOINTS=842   ^
  -dFIXEDMEDIA               ^
  -c "24 72 translate"       ^
  -c " 0 0 535 722 rectclip" ^
  -f uncropped-input.pdf

ou

gs                           \
  -o cropped.pdf             \
  -sDEVICE=pdfwrite          \
  -dDEVICEWIDTHPOINTS=595    \
  -dDEVICEHEIGHTPOINTS=842   \
  -dFIXEDMEDIA               \
  -c "24 72 translate"       \
  -c " 0 0 535 722 rectclip" \
  -f uncropped-input.pdf

[^] Pour être plus précis: cela ne fonctionnera pas pour les PDF qui accompagnent leur propre /CropBox déjà défini à des valeurs spécifiques. Un sale hack qui consiste à changer la chaîne /CropBox pour toutes les pages où l'on souhaite /cROPBoX (ou changement de casse similaire) avec un éditeur de texte avant d'exécuter la commande GS ci-dessus. Le changement de casse "désarme" le paramètre cropbox (sans modifier aucun PDF invalident la table xref existante)), il n'est donc plus pris en compte par PDF.

64
Kurt Pfeifle