Scroll to navigation

pdfoutline(1) fntsample pdfoutline(1)


pdfoutline - add outlines (aka bookmarks) to PDF files


pdfoutline input.pdf outlines.txt output.pdf


pdfoutline reads input file given as first argument, adds outlines from text file given as second argument, and saves result to file with name given as third argument.

File with outlines information should consist of lines in the following format:

<level> <page> Outline text

<level> and <page> should be integers. Each field should be separated by exactly one space symbol. All values for <level> should be greater or equal than that of the first line. Page numeration starts with 1.

Outlines file can contain comments that start with # in first column. Comments and empty lines are ignored. The text is expected to be in UTF-8 encoding.


pdfoutline accepts no options.


Here is example of outlines data file:

0 1 Document title
1 1 Chapter 1
2 1 Chapter 1.1
2 2 Chapter 1.2
1 3 Chapter 2

Using this file will result in outlines like the following:

Document title
+-Chapter 1
| +-Chapter 1.1
| +-Chapter 1.2
+-Chapter 2


Due to a bug in Perl library PDF::API2 v2.039 and earlier, some Unicode characters are handled incorrectly and cause outline string corruptions. For example, everything after the CJK character U+4E0A (上) will get corrupted in the PDF output because its UTF-16 encoding contains byte 0x0A, which happens to be an ASCII newline character.

For user convenience, this pdfoutline version includes a workaround that should allow flawless operation down to PDF::API2 v2.034. Users of even earlier versions should upgrade PDF::API2.


pdfoutline author is Ievgenii Meshcheriakov <>
pdfoutline is part of fntsample and can be downoaded from <>.

2021-08-01 5.4