Update: Benutzer3124688 hat diesen Vorgang im Skript dpsprep verschlüsselt .
Ich kenne keine Tools, die die Konvertierung für Sie erledigen. Sie sollten dies sicherlich tun können, aber es kann etwas Arbeit kosten. Ich werde den grundlegenden Prozess beschreiben. Sie benötigen die Open Source-Befehlszeilen-Dienstprogramme pdftk
und djvused
(Teil von DjVuLibre). Diese sind bei Ihrem Paketmanager (GNU / Linux) oder deren Websites (Windows, OS X) verfügbar.
Schritt 1: Konvertieren Sie den Dateitext
Verwenden Sie zunächst ein beliebiges Werkzeug, um die DJVU-Datei in ein PDF (ohne Lesezeichen) zu konvertieren.
Angenommen, die Dateien werden aufgerufen
filename.djvu
undfilename.pdf
.Schritt 2: Extrahieren Sie die DJVU-Kontur
Als nächstes geben Sie die DJVU-Gliederungsdaten wie folgt in eine Datei aus:
djvused "filename.djvu" -e 'print-outline' > bmarks.out
Dies ist eine Datei, in der die Lesezeichen der DJVU-Dokumente in einem serialisierten Baumformat aufgelistet sind. Tatsächlich ist es nur ein SEXPR und kann leicht analysiert werden. Das Format ist wie folgt:
file ::= (bookmarks <bookmark>*) bookmark ::= (name page <bookmark>*) name ::= "<character>*" page ::= "#<digit>+"
Zum Beispiel:
(bookmarks ("bmark1" "#1") ("bmark2" "#5" ("bmark2subbmark1" "#6") ("bmark2subbmark2" "#7")) ("bmark3" "#9" ...))
Schritt 3: Konvertieren Sie die DJVU-Gliederung in das PDF-Metadatenformat
Jetzt müssen wir diese Lesezeichen in das für PDF-Metadaten erforderliche Format konvertieren. Diese Datei hat das Format:
file ::= <entry>* entry ::= BookmarkBegin BookmarkTitle: <title> BookmarkLevel: <number> BookmarkPageNumber: <number> title ::= <character>*
So würde unser Beispiel werden:
BookmarkBegin BookmarkTitle: bmark1 BookmarkLevel: 1 BookmarkPageNumber: 1 BookmarkBegin BookmarkTitle: bmark2 BookmarkLevel: 1 BookmarkPageNumber: 5 BookmarkBegin BookmarkTitle: bmark2subbmark1 BookmarkLevel: 2 BookmarkPageNumber: 6 BookmarkBegin BookmarkTitle: bmark2subbmark2 BookmarkLevel: 2 BookmarkPageNumber: 7 BookmarkBegin BookmarkTitle: bmark3 BookmarkLevel: 1 BookmarkPageNumber: 9
Im Grunde müssen Sie lediglich ein Skript schreiben, um durch den SEXPR-Baum zu navigieren, den Pegel zu verfolgen und den Namen, die Seitennummer und den Pegel jedes Eintrags im richtigen Format auszugeben.
Schritt 4: Extrahieren Sie PDF-Metadaten und Spleiße in konvertierte Lesezeichen
Sobald Sie die konvertierte Liste erhalten haben, geben Sie die PDF-Metadaten aus Ihrer konvertierten PDF-Datei aus:
pdftk "filename.pdf" dump_data > pdfmetadata.out
Öffnen Sie nun die Datei und suchen Sie die Zeile, die beginnt:
NumberOfPages:
Fügen Sie die konvertierten Lesezeichen nach dieser Zeile ein. Speichern Sie die neue Datei als
pdfmetadata.in
Schritt 5: PDF mit Lesezeichen erstellen
Jetzt können wir eine neue PDF-Datei erstellen, die diese Metadaten enthält:
pdftk "filename.pdf" update_info "pdfmetadata.in" output out.pdf
Die Datei
out.pdf
sollte eine Kopie Ihrer PDF- Datei sein, deren Lesezeichen aus der DJVU-Datei importiert wurden.