
Ich habe eine PDF-Datei, nennen wir sie A, die aus vielen Seiten besteht. Dann habe ich eine zweite PDF-Datei, nennen wir sie B, die aus einer einzigen Seite besteht.
Mein Ziel ist eine Ausgabedatei, nennen wir sie O, mit dem folgenden Muster:
O[1] = A[1]
O[2] = B[1]
O[3] = A[2]
O[4] = B[1]
O[5] = A[3]
O[6] = B[1]
O[7] = A[4]
O[8] = B[1]
...
Mit anderen Worten, ich möchte die Seiten A mit Seite B verschachteln. Zum Hintergrund: Datei A enthält die Folien eines Kurses, den ich besucht habe. Datei B habe ich mit einer einzelnen Seite erstellt, die mit horizontalen Linien gefüllt ist.
Die resultierende Ausgabedatei ermöglicht es mir, meine Notizen auf der rechten Seite der Folien zu platzieren (da ich zwei Seiten pro Blatt drucke).
Ich kann dies tun, indem ich jede einzelne Seite in LibreOffice importiere, aber ich suche nach einem Skript (vielleicht pdftk?), das sich problemlos mit verschiedenen Dateien ausführen lässt.
Antwort1
Es geht um das Zusammentragen von Seiten, hier mit B alsseltsam/Vorderseiteund A alssogar/Rückseite(unter Berücksichtigung der genauen Anforderung des OP), außer dass nicht genügend B-Seiten verfügbar sind: Sie müssen in einem ersten Vorgang oft genug dupliziert werden.
Wenn A-Seiten (alsoRückseite) sind auf der linken Seite der B-Seiten zu sehen, dann sollte es eine Wache gebenVorderseiteSeite zuerst: zum Beispiel eine zusätzliche B-Seite.
Zählen Sie die Anzahl der Seiten in A. Angenommen, es sind 10 Seiten.
Das bedeutet, dass eine zusätzliche Titelseite B benötigt wird, um insgesamt 10+1 = 11 (oder wie unten zu sehen 0 bis 10) zu erhalten. Wenn es eine Möglichkeit gibt, diese Zählung zu automatisieren, sollte sie als oberer Wert für die folgende Schleife verwendet werden. Ich kenne keine Möglichkeit.
Generiere in einer Shell-Schleife genügend B-Seiten (Bs einzigartige Seite B1), um sie aus einem ersten
pdftk
Befehl zu duplizieren, und führe sie durchstdoutzu einem zweitenpdftk
Befehl, derstdinfür den B-Teil und werde sie entlang A sortieren.pdftk B=B.pdf cat $(for page in $(seq 0 10); do echo B1; done) output - | pdftk A=A.pdf B=- shuffle B A output O.pdf
oder dieselbe Aufteilung in einer besser lesbaren Form:
pdftk B=B.pdf \ cat $(for page in $(seq 0 10); do echo B1; done) \ output - | \ pdftk A=A.pdf \ B=- \ shuffle B A \ output O.pdf
Hinweis: Falls das nicht klar war, ergibt sich folgendes Ergebnis, sobald die Shell-Schleife aufgerollt ist:
pdftk B=B.pdf cat B1 B1 B1 B1 B1 B1 B1 B1 B1 B1 B1 output - | pdftk A=A.pdf B=- shuffle B A output O.pdf
Soll die Seitenreihenfolge zwischen A und B umgekehrt werden (um den Druckvorgang mit Seite A statt mit Seite B zu starten), so generieren Sie am besten eine Seite weniger in B (die letzte Seite B wird vermutlich nicht benötigt) und wechseln im letzten Befehl shuffle B A
zu .shuffle A B
Hier dasJava (Neu-)Implementierung vonpdftk
Es wurde die Version verwendet, die in den aktuellen Distributionen enthalten ist.