Puoi risolverlo con l'aiuto di Ghostscript. pdftk
da solo non posso farlo (per quanto ne so). Ti darò i passaggi della riga di comando per farlo manualmente. Sarà facile copiarlo come una procedura, anche con parametri diversi per dimensioni e numeri di pagina. Ma hai detto che puoi farlo da solo ;-)
Come risolverlo con l'aiuto di Ghostscript ...
... e per il gusto di farlo, ho fatto di recente che non con un file di input con le pagine "double-up", ma con "Treble-up". Puoi leggere la risposta per questo caso qui .
Il tuo caso è ancora più semplice. Sembra che tu abbia qualcosa di simile a questo:
+------------+------------+ ^
| | | |
| 1 | 2 | |
| | | 595 pt
| | | |
| | | |
| | | |
+------------+------------+ v
^
fold
v
+------------+------------+ ^
| | | |
| 3 | 4 | |
| | | 595 pt
| | | |
| | | |
| | | |
+------------+------------+ v
<---------- 842 pt -------->
Volete creare 1 PDF con 4 pagine, ognuna delle quali ha le dimensioni di 421 pt x 595 pt.
Primo passo
Per prima cosa estraiamo le sezioni di sinistra da ciascuna delle pagine di input:
gs \
-o left-sections.pdf \
-sDEVICE=pdfwrite \
-g4210x5950 \
-c "<</PageOffset [0 0]>> setpagedevice" \
-f double-page-input.pdf
Cosa hanno fatto questi parametri?
Innanzitutto, sappi che in PDF 1 pollice == 72 punti . Quindi il resto è:
-o ...............:
Nome file di output. Utilizza anche implicitamente -dBATCH -dNOPAUSE -dSAFER
.
-sDEVICE=pdfwrite :
vogliamo PDF come formato di output.
-g................:
imposta la dimensione del supporto di output in pixel. La risoluzione predefinita di pdfwrite è 720 dpi. Quindi moltiplicare per 10 per ottenere una corrispondenza per PageOffset.
-c "..............:
chiede a Ghostscript di elaborare lo snippet di codice PostScript specificato appena prima del file di input principale (che deve seguire -f
).
<</PageOffset ....:
imposta lo spostamento dell'immagine della pagina sul supporto. (Naturalmente, per le pagine a sinistra il passaggio da [0 0]
non ha alcun effetto reale.)
-f ...............:
elaborare questo file di input.
Quale risultato ha ottenuto l'ultimo comando?
Questo:
Output file: left-sections.pdf, page 1
+------------+ ^
| | |
| 1 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
Output file: left-sections.pdf, page 2
+------------+ ^
| | |
| 3 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
<-- 421 pt -->
Secondo passo
Successivamente, le sezioni giuste:
gs \
-o right-sections.pdf \
-sDEVICE=pdfwrite \
-g4210x5950 \
-c "<</PageOffset [-421 0]>> setpagedevice" \
-f double-page-input.pdf
Nota l'offset negativo poiché stiamo spostando la pagina a sinistra mantenendo l'area di visualizzazione fissa.
Risultato:
Output file: right-sections.pdf, page 1
+------------+ ^
| | |
| 2 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
Output file: right-sections.pdf, page 2
+------------+ ^
| | |
| 4 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
<-- 421 pt -->
Ultimo passo
Ora uniamo le pagine in un unico file. Potremmo farlo anche con ghostscript, ma useremo pdftk
invece, perché è più veloce per questo lavoro:
pdftk \
A=right-sections.pdf \
B=left-sections.pdf \
shuffle \
output single-pages-output.pdf
verbose
Fatto. Ecco il risultato desiderato. 4 pagine diverse, dimensioni 421x595 pt.
Risultato:
+------------+ +------------+ +------------+ +------------+ ^
| | | | | | | | |
| 1 | | 2 | | 3 | | 4 | |
| | | | | | | |5595 pt
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
+------------+ +------------+ +------------+ +------------+ v
<-- 421 pt --> <-- 421 pt --> <-- 421 pt --> <-- 421 pt -->