Sie können dies mit Hilfe von Ghostscript lösen. pdftk
alleine kann das nicht (nach bestem Wissen). Ich gebe Ihnen die Befehlszeilenschritte, um dies manuell durchzuführen. Es ist leicht, dies als Prozedur zu skizzieren, auch mit unterschiedlichen Parametern für Seitengrößen und Seitennummern. Aber du hast gesagt, dass du das selbst machen kannst ;-)
So lösen Sie dieses Problem mit Hilfe von Ghostscript ...
... und zum Spaß habe ich es kürzlich nicht mit einer Eingabedatei gemacht, die "Double-Up" -Seiten enthält, sondern eine mit "Höhen". Die Antwort für diesen Fall können Sie hier lesen .
Ihr Fall ist noch einfacher. Sie scheinen etwas Ähnliches zu haben:
+------------+------------+ ^ | | | | | 1 | 2 | | | | | 595 pt | | | | | | | | | | | | +------------+------------+ v ^ fold v +------------+------------+ ^ | | | | | 3 | 4 | | | | | 595 pt | | | | | | | | | | | | +------------+------------+ v <---------- 842 pt -------->
Sie möchten 1 PDF mit 4 Seiten erstellen, von denen jede die Größe 421 x 595 pt hat.
Erster Schritt
Zuerst extrahieren wir die linken Abschnitte von jeder der Eingabeseiten:
gs \ -o left-sections.pdf \ -sDEVICE=pdfwrite \ -g4210x5950 \ -c "<</PageOffset [0 0]>> setpagedevice" \ -f double-page-input.pdf
Was haben diese Parameter gemacht?
Zuerst wissen Sie, dass in PDF 1 Zoll == 72 Punkte . Dann ist der Rest:
-o ...............:
Benennt die Ausgabedatei. Implizit auch verwendet-dBATCH -dNOPAUSE -dSAFER
.-sDEVICE=pdfwrite :
wir wollen PDF als Ausgabeformat.-g................:
legt die Größe des Ausgabemediums in Pixel fest. Die Standardauflösung von pdfwrite beträgt 720 dpi. Multiplizieren Sie daher mit 10, um eine Übereinstimmung für PageOffset zu erhalten.-c "..............:
bittet Ghostscript, das angegebene PostScript-Code-Snippet unmittelbar vor der Haupteingabedatei (die gefolgt werden muss-f
) zu verarbeiten.<</PageOffset ....:
Legt die Verschiebung des Seitenbilds auf dem Medium fest. (Für linke Seiten hat die Verschiebung natürlich[0 0]
keine wirklichen Auswirkungen.)-f ...............:
Diese Eingabedatei verarbeiten.
Welches Ergebnis hat der letzte Befehl erzielt?
Dieses:
Output file: left-sections.pdf, page 1 +------------+ ^ | | | | 1 | | | |595 pt | | | | | | | | | +------------+ v Output file: left-sections.pdf, page 2 +------------+ ^ | | | | 3 | | | |595 pt | | | | | | | | | +------------+ v <-- 421 pt -->
Zweiter Schritt
Als nächstes die richtigen Abschnitte:
gs \ -o right-sections.pdf \ -sDEVICE=pdfwrite \ -g4210x5950 \ -c "<</PageOffset [-421 0]>> setpagedevice" \ -f double-page-input.pdf
Beachten Sie den negativen Versatz, da wir die Seite nach links verschieben, während der Anzeigebereich unbewegt bleibt.
Ergebnis:
Output file: right-sections.pdf, page 1 +------------+ ^ | | | | 2 | | | |595 pt | | | | | | | | | +------------+ v Output file: right-sections.pdf, page 2 +------------+ ^ | | | | 4 | | | |595 pt | | | | | | | | | +------------+ v <-- 421 pt -->
Letzter Schritt
Jetzt fassen wir die Seiten in einer Datei zusammen. Wir könnten das auch mit Ghostscript machen, aber wir werden es verwenden pdftk
, weil es für diesen Job schneller ist:
pdftk \ A=right-sections.pdf \ B=left-sections.pdf \ shuffle \ output single-pages-output.pdf verbose
Erledigt. Hier ist das gewünschte Ergebnis. 4 verschiedene Seiten im Format 421x595 pt.
Ergebnis:
+------------+ +------------+ +------------+ +------------+ ^ | | | | | | | | | | 1 | | 2 | | 3 | | 4 | | | | | | | | | |5595 pt | | | | | | | | | | | | | | | | | | | | | | | | | | | +------------+ +------------+ +------------+ +------------+ v <-- 421 pt --> <-- 421 pt --> <-- 421 pt --> <-- 421 pt -->