web-dev-qa-db-fra.com

Comment changer l'orientation de la page d'un PDF? (Solution Ghostscript ou PostScript nécessaire)

Étant donné un PDF document, comment changer l'orientation d'une page individuelle?)

J'utilise la dernière version de Ghostscript.

21

Pourquoi utilisez-vous requis Ghostscript? Serait-il acceptable d'utiliser un autre outil logiciel libre et Open Source fonctionnant sur la ligne de commande, tel que pdftk?

Quoi qu'il en soit, voici comment faire pivoter les pages avec Ghostscript. Cependant, cela peut ne pas fonctionner pour vos intentions, car vous ne pouvez pas forcer une certaine orientation pour une page individuelle uniquement. Il repose sur un algorithme Ghostscript interne qui essaie de faire pivoter automatiquement les pages, en fonction du flux de texte à l'intérieur des PDF:
* -dAutoRotatePages=/None - conserve l'orientation de chaque page;
* -dAutoRotatePages=/All - fait tourner toutes les pages (ou aucune) selon une sorte de "décision majoritaire";
* -dAutoRotatePages=/PageByPage - fait pivoter automatiquement les pages individuellement.

Ajoutez-en un à la ligne de commande Ghostscript que vous utilisez.

S'il y a no texte sur une page (ou si une rotation de page automatique est définie sur /None), alors Ghostscript utilise les paramètres setpagedevice. Vous pouvez transmettre ces setpagedevice paramètres sur la ligne de commande Ghostscript en utilisant le -c commutateur comme ceci:
* -c "<</Orientation 3>> setpagedevice" - définit paysage orientation;
* -c "<</Orientation 0>> setpagedevice" - définit portrait orientation;
* -c "<</Orientation 2>> setpagedevice" - définit à l'envers orientation;
* -c "<</Orientation 1>> setpagedevice" - définit paysage marin orientation.

Vous devez probablement définir l'orientation de chaque page lorsque extraction les pages. Je ne pense pas que cela fonctionnerait en les fusionnant dans le document unifié (je n'ai jamais testé cela).

Dans tous les cas, je recommanderais de regarder aussi pdftk (qui est également disponible pour Windows). C'est un outil de ligne de commande qui peut faire pivoter des pages à partir de PDF, et bien plus encore. Plus facile à utiliser que Ghostscript pour votre objectif déclaré, et beaucoup plus rapide également. Surtout, il peut faire pivoter des pages individuelles à l'intérieur d'un PDF document, laissant les autres pages intactes. Exemple:

pdftk A=in.pdf           \
  cat A1-3 A4west A5-end \
  output out.pdf

Cette commande affichera les pages 1, 2 et 3 ainsi que les pages 5, 6, ... pour la dernière fois sans rotation, mais fera pivoter la page 4 de 90 degrés (de sorte que l'en-tête de la page soit orienté vers "l'ouest"). (Cependant, sachez que cette commande peut conduire à des résultats inattendus, en fonction de l'orientation d'origine de vos pages d'entrée: Vous devez vérifier l'orientation de toutes les pages de votre entrée PDF en exécutant pdfinfo -l 1000 input.pdf puis vérifiez la valeur de la sortie rot: si vous voyez des valeurs différentes de 0, comme 90, 180 et 270, ces pages sont déjà pré-tournées ...)

Voir ici pour plus de détails: http://www.accesspdf.com/pdftk/ .

41
Kurt Pfeifle

Rien d'autre que -dNORANGEPAGESIZE a parfaitement fonctionné pour moi.

1
name