PDFs miteinander „verzahnen“ mit pdftk

Ich hatte heute ein Problem: Ich wollte einen Stapel Blätter scannen, farbig, hatte aber nur einen Einzugsscanner zur hand der kein Duplex kann (immerhin Einzug, von daher kein Problem).

Also als erstes alle Vorderseiten gescannt, danach den Stapel umgedreht (nicht umsortiert) und die Rückseiten gescannt.

Ich hatte also 2 Dateien: vorderseiten.pdf und rueckseiten.pdf. Wer mitdenkt wird merken: durch das Umdrehen des Stapels war die rueckseiten.pdf genau falsch sortiert. Die letzte Seite ist die erste und vice versa. Dazu müssten die Dateien wie ein Reißverschluss „verzahnt“ werden.

Zum ändern von PDF Dateien gibts das freie, kleine Programm pdftk. Unter Ubuntu in den Quellen, für andere Betriebssysteme übers Netz zu beziehen. Ob die Befehle unter Windows genau gleich sind weiß ich nicht, ich nutz es nur unter Linux. Eine kleine „Warnung“ vorab: hier passiert alles auf der Konsole.

Das Umsortieren der Seiten ist schnell gemacht:

pdftk rueckseiten.pdf cat end-1 output rueckseiten_reverse.pdf

erstellt eine neue pdf „rueckseiten_reverse.pdf“, welche die Seiten in genau umgekehrter Reihenfolge enthält.

Nun möchte man aber noch die beiden Dateien zusammenfügen, abwechselnd eine Datei der „vorderseiten.pdf“ und der „rueckseiten_reverse.pdf“. Auch hier hilft wieder pdftk, nur dieses Mal kommt noch ein kleinwenig bash scripting dazu 🙂

Als erstes teilen wir die beiden PDF Dateien auf:

pdftk rueckseiten_reverse.pdf burst

macht aus jeder Seite eine eigene pg_xxxx.pdf (wobei xxxx die Seitenzahl angibt).

jetzt diese Dateien umbenennen (damit sie nicht mit den gleich folgenden Vorderseiten überschrieben werden):

for f in pg_*.pdf; do mv $f rueck_$f; done;

Nun heißen die Dateien rueck_pg_xxxx.pdf und wir können (analog zur Rückseite) die vorderseiten aufteilen:

pdftk vorderseiten.pdf burst

Nun liegen in dem Ordner in dem wir uns befinden neben den rueck_pg_xxxx.pdf auch die vorderseiten pg_xxxx.pdf

Das Zusammenfügen ist nun ein „Kinderspiel“:

a=““; for f in pg_*.pdf; do a=“$a $f rueck_$f“; done; pdftk $a output alleseiten.pdf

Das wars schon. nun haben wir eine „alleseiten.pdf“, die (wenn alles richtig gemacht wurde) alle Seiten, in der richtigen Reihenfolge beinhaltet.

Viel Spaß beim Basteln.

P.S.: Wer die Blätter auf dem Kopf stehend gescannt hat, kann sie mit pdftk auch einfach Drehen

pdftk in.pdf cat 1-endS output out.pdf