PDF-Dateien mit pdftk zusammenfassen und mit Lesezeichen versehen
Heute stand ich vor dem Problem, eine größere Anzahl PDF-Dateien (Scans und aus LaTeX erzeugte PDFs) zusammenzufassen und mit Lesezeichen zu versehen. Dabei kam das Kommandozeilenwerkzeug PDFtk zum Einsatz.
Im ersten Schritt habe ich die Dateien mit einem Präfix in Form einer aufsteigenden und ggf. mit Null aufgefüllten Zahlenfolge versehen. Die erste Datei hieß also beispielweise 01_beispiel.pdf. Dieser Schritt sollte die Reihenfolge der Seiten in der Ziel-Datei gewährleisten.
Anschließend habe ich in dem Verzeichnis mit den PDF-Dateien über den Befehl
pdftk *.pdf cat output ziel.pdf
die einzelnen PDF-Dateien zu einer einzigen großen PDF-Datei mit dem Namen ziel.pdf zusammengefasst.
Im nächsten Schritt habe ich die Metadaten der Datei ziel.pdf mit dem Befehl
pdftk ziel.pdf dump_data_utf8 output meta.txt
exportiert.
In der Datei meta.txt fanden sich dann Einträge der folgenden Form:
BookmarkBegin BookmarkTitle: BookmarkLevel: 1 BookmarkPageNumber: 1
Diese Einträge habe ich für mein Zieldokument angepasst und noch ein paar Einträge dieser Form hinzugefügt. Der Eintrag BookmarkLevel blieb dabei in meinem Fall immer auf 1 (oberste Ebene). Unter BookmarkTitle habe ich den Text des jeweiligen Lesezeichens erfasst. Unter BookmarkPageNumber wurde die Seite eingetragen, auf der ein einzelner logischer Abschnitt der Datei begann.
Ein Eintrag sah also anschließend z. B. so aus:
BookmarkBegin BookmarkTitle: Zusammenfassung BookmarkLevel: 1 BookmarkPageNumber: 25
Nachdem ich alle Einträge vorgenommen hatte, habe ich die Datei meta.txt abgespeichert.
Im letzten Schritt habe ich mit dem Befehl
pdftk ziel.pdf update_info_utf8 meta.txt output ziel_final.pdf
die geänderten Metadaten in die PDF-Datei geschrieben.
Bei kleinen Dokumenten lässt sich dieses Vorgehen noch gut von Hand erledigen. Bei größeren Dokumenten wäre es sicher sinnvoll über Automatisierung bzw. Teilautomatisierung in Form eines Shellskripts nachzudenken.