Vous pouvez résoudre cela avec l'aide de Ghostscript. pdftk
seul ne peut pas le faire (pour ce que je sais). Je vais vous donner les étapes en ligne de commande pour le faire manuellement. Il sera facile de scripter ceci comme une procédure, également avec différents paramètres pour les tailles de page et les numéros de page. Mais vous avez dit que vous pouvez le faire vous-même ;-)
Comment résoudre cela avec l'aide de Ghostscript...
...et pour le plaisir, je l'ai récemment fait non avec un fichier d'entrée comportant des pages "en double", mais avec des pages "en triple". Vous pouvez lire la réponse pour 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
^
plier
v
+------------+------------+ ^
| | | |
| 3 | 4 | |
| | | 595 pt
| | | |
| | | |
| | | |
+------------+------------+ v
<---------- 842 pt -------->
Vous voulez créer 1 PDF avec 4 pages, chacune ayant une taille de 421 pt x 595 pt.
Première étape
Commençons par extraire les sections de gauche de chacune des pages d'entrée :
gs \
-o left-sections.pdf \
-sDEVICE=pdfwrite \
-g4210x5950 \
-c "<> setpagedevice" \
-f double-page-input.pdf
Que font ces paramètres ?
Tout d'abord, sachez que dans un PDF 1 pouce == 72 points. Ensuite, le reste est :
-o ...............:
Nomme le fichier de sortie. Utilise implicitement également -dBATCH -dNOPAUSE -dSAFER
.
-sDEVICE=pdfwrite :
nous voulons le format PDF en sortie.
-g................:
définit la taille des médias de sortie en pixels. La résolution par défaut de pdfwrite est de 720 dpi. Donc multiplier 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 avec -f
).
< 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 par `[0 0]` n'a pas vraiment d'effet.)
* `-f ...............:` traite ce fichier d'entrée.
``Quel résultat a donné la dernière commande ?
Celui-ci :
Fichier de sortie : left-sections.pdf, page 1
+------------+ ^
| | |
| 1 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
Fichier de sortie : left-sections.pdf, page 2
+------------+ ^
| | |
| 3 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
<-- 421 pt -->
Deuxième étape
Ensuite, les sections de droite :
gs \
-o right-sections.pdf \
-sDEVICE=pdfwrite \
-g4210x5950 \
-c "<> setpagedevice" \
-f double-page-input.pdf
Résultat :
Fichier de sortie : right-sections.pdf, page 1
+------------+ ^
| | |
| 2 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
Fichier de sortie : right-sections.pdf, page 2
+------------+ ^
| | |
| 4 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
<-- 421 pt -->
Dernière étape
Maintenant nous combinons les pages en un seul fichier. Nous pourrions le faire avec Ghostscript également, mais nous utiliserons pdftk
à la 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
Fait. Voici le résultat souhaité. 4 pages différentes, de taille 421x595 pt.
Résultat :
+------------+ +------------+ +------------+ +------------+ ^
| | | | | | | | |
| 1 | | 2 | | 3 | | 4 | |
| | | | | | | | 595 pt
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
+------------+ +------------+ +------------+ +------------+ v
<-- 421 pt --> <-- 421 pt --> <-- 421 pt --> <-- 421 pt -->``