You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Generate bookmarks to each PDF starting point when merging multiple PDF files #867
The "merge PDFs" route (POST http://localhost:3000/forms/pdfengines/merge) could include the feature of generating bookmarks in the PDF to each of the combined documents' starting points.
Each of the input PDFs potentially has a title as metadata. This title can be used to add a bookmark in the combined PDF, that points to the first page of that input document in the output document.
Input: 4 documents titled "Intro" (2 pages), "Chapter 1" (10 pages), "Chapter 2" (12 pages), "Appendix" (3 pages)
Output: A single PDF as usual, but that also has bookmarks with each document's title, and pointing to the corresponding page:
"Intro" (points to page 1)
"Chapter 1" (points to page 3)
"Chapter 2" (points to page 13)
"Appendix" (points to page 25)
Why?
PDF reader apps often show this as a table of content in their own UI, for easier navigation:
Kindle and similar devices show this table of content as well.
Merge now takes a titleBookmarks form field. Set it to true and Gotenberg adds one bookmark per input, labeled by its Title metadata (or the filename when the title is missing) and pointing to that document's first page. Each document's own bookmarks nest underneath, so you get a proper table of contents.
Activity
feat(pdfengines): generate document-title bookmarks when merging (#867)
gulien commentedon Aug 14, 2026
Added in 65e5699, shipping in the next release.
Merge now takes a
titleBookmarksform field. Set it totrueand Gotenberg adds one bookmark per input, labeled by itsTitlemetadata (or the filename when the title is missing) and pointing to that document's first page. Each document's own bookmarks nest underneath, so you get a proper table of contents.Your exact example:
Thanks for the clear write up, made this easy to build.
gnapse commentedon Aug 14, 2026
Thank you for adding this feature!
feat(container): update image docker.io/gotenberg/gotenberg (8.35.0 ➔…
feat(container): update image docker.io/gotenberg/gotenberg (8.35.0 ➔…
feat(container): update image gotenberg/gotenberg (8.34.0 → 8.36.0) (#…
Upstream merge (#1)