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.