Vous pouvez résoudre ce problème avec l'aide de Ghostscript. pdftk
seul ne peut pas faire cela (à ma connaissance). Je vais vous donner les étapes à suivre en ligne de commande pour le faire manuellement. Il sera facile de créer un script pour cette procédure, avec également différents paramètres pour les tailles et les numéros de page. Mais vous avez dit que vous pouvez le faire vous-même ;-)
Comment résoudre ce problème avec l'aide de Ghostscript ...
... et pour le plaisir, je l’ai récemment fait non pas avec un fichier d’entrée comportant des pages "double-up", mais avec un "triple-up". Vous pouvez lire la réponse à ce cas dans cette autre réponse .
Votre cas est encore plus simple. Vous semblez avoir quelque chose de similaire à ceci:
+------------+------------+ ^
| | | |
| 1 | 2 | |
| | | 595 pt
| | | |
| | | |
| | | |
+------------+------------+ v
^
fold
v
+------------+------------+ ^
| | | |
| 3 | 4 | |
| | | 595 pt
| | | |
| | | |
| | | |
+------------+------------+ v
<---------- 842 pt -------->
Vous souhaitez créer 1 PDF de 4 pages, chacune de la taille de 421 points x 595 points.
Premier pas
Commençons par extraire les sections de gauche de chacune des pages d'entrée:
gs \
-o left-sections.pdf \
-sDEVICE=pdfwrite \
-g4210x5950 \
-c "<</PageOffset [0 0]>> setpagedevice" \
-f double-page-input.pdf
Qu'ont fait ces paramètres?
Tout d’abord, sachez qu’en PDF 1 pouce == 72 points . Ensuite, le reste est:
-o ...............:
Nom du fichier de sortie. Implicitement utilise également -dBATCH -dNOPAUSE -dSAFER
.
-sDEVICE=pdfwrite :
nous voulons PDF comme format de sortie.
-g................:
définit la taille du support de sortie en pixels. La résolution par défaut de pdfwrite est 720 dpi. Par conséquent, multipliez par 10 pour obtenir une correspondance pour PageOffset.
-c "..............:
demande à Ghostscript de traiter l'extrait de code PostScript donné juste avant le fichier d'entrée principal (qui doit suivre -f
).
<</PageOffset ....:
définit le décalage de l'image de la page sur le support. (Bien sûr, pour les pages de gauche, le décalage de [0 0]
n'a aucun effet réel.)
-f ...............:
traiter ce fichier d'entrée.
Quel résultat la dernière commande a-t-elle atteint?
Celui-là:
Output file: left-sections.pdf, page 1
+------------+ ^
| | |
| 1 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
Output file: left-sections.pdf, page 2
+------------+ ^
| | |
| 3 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
<-- 421 pt -->
Deuxième étape
Ensuite, les bonnes sections:
gs \
-o right-sections.pdf \
-sDEVICE=pdfwrite \
-g4210x5950 \
-c "<</PageOffset [-421 0]>> setpagedevice" \
-f double-page-input.pdf
Résultat:
Output file: right-sections.pdf, page 1
+------------+ ^
| | |
| 2 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
Output file: right-sections.pdf, page 2
+------------+ ^
| | |
| 4 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
<-- 421 pt -->
Dernière étape
Maintenant, nous combinons les pages dans un fichier. Nous pourrions le faire avec ghostscript également, mais nous l'utilisons à la pdftk
place, car c'est plus rapide pour ce travail:
pdftk \
A=right-sections.pdf \
B=left-sections.pdf \
shuffle A B \
output single-pages-output.pdf
verbose
Terminé. Voici le résultat souhaité. 4 pages différentes, taille 421x595 pt.
Résultat:
+------------+ +------------+ +------------+ +------------+ ^
| | | | | | | | |
| 1 | | 2 | | 3 | | 4 | |
| | | | | | | | 595 pt
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
+------------+ +------------+ +------------+ +------------+ v
<-- 421 pt --> <-- 421 pt --> <-- 421 pt --> <-- 421 pt -->