3

How insert the outline (the bookmarks) into DjVu file for easier browsing in a document using the DjVuLibre library?

With such a structure:

  • "TOC" level 1 => link to pageNumber
  • "Chapter name" level 1 => link to pageNumber
    • "Chapter name" level 2 => link to pageNumber
  • "Chapter name" level 1 => link to pageNumber
    • "Chapter name" level 2 => link to pageNumber
      • "Chapter name" level 3 => link to pageNumber
  • "Chapter name" level 1 => link to pageNumber
    ...
1

First, create your desired structure in a text editor.

On the first line will be placed keyword bookmarks in round brackets as a root.

Behind the chapter titles are located page numbers or page names (with a suffix .djvu). Before the number must be symbol sharp #. All parameters are enclosed in quotation marks "".

Lower order chapters are created by embedding additional round brackets behind higher order chapter.

Sample with page numbers:

(bookmarks
    ("TOC" "#3")
    ("Chapter 1 - Blabla" "#7"
        ("Subchapter 1.1 - Blabla" "#11")
    )
    ("Chapter 2 - Blabla" "#15"
        ("Subchapter 2.1 - Blabla" "#17"
            ("Subchapter 2.1.1 - Blabla" "#20")
        )
    )
    ("Chapter 3 - Blabla" "#25")
)

Sample with page names (with a suffix .djvu):

(bookmarks
    ("TOC" "#page_0003.djvu")
    ("Chapter 1 - Blabla" "#page_0007.djvu"
        ("Subchapter 1.1 - Blabla" "#page_00011.djvu")
    )
    ("Chapter 2 - Blabla" "#page_00015.djvu"
        ("Subchapter 2.1 - Blabla" "#page_00017.djvu"
            ("Subchapter 2.1.1 - Blabla" "#page_00020.djvu")
        )
    )
    ("Chapter 3 - Blabla" "#page_00025.djvu")
)

Caution: Save the file in UTF-8.

Second, paste the created outline text file into the selected DjVu file.

Install the DjVuLibre library (if you do not already have it).
From the library we use djvused tool.

At the command prompt, type:

path\djvused path\book.djvu -e "set-outline path\outline.txt" -s

Instead path parameter substitute your location on the disk.
Parameter -e is the exec (system call) of the set-outline command with the filename parameter.
Parameter -s is save command.

Press Enter...

0

Although the following method does not explicitly use the DjVuLibre library (it does implicitly), the following method might save some of your precious time...

  • Use some tool to extract the contents from the djvu file. I recommend pdf_contents_extractor for python3 which can be easily installed with pip(pip3) (only tested on linux, but works for djvu too)
  • Fine-tune the contents.txt or contents_ocr.txt file with your favorite text editor
  • Use HandyOutliner to insert the bookmarks in your djvu file

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.