Skip to content

Edit bookmarks

Build the outline a long document should have had.

Processed on your device

This tool runs entirely in your browser. Your file is never uploaded, and you can verify that in your browser's network tab. Verify it yourself: open your browser's network tab and watch. You will see one small request asking whether you have tasks left - a tool name and a hash, never the file.

What this does

Bookmarks are the panel down the side of a reader that lists a document's sections and jumps to them. A long PDF without one is a scroll bar and nothing else. This tool writes that outline: you build the tree by hand, or generate it from the headings the document already has, and each entry is written as a jump to a page in the file itself.

Use it on the documents that need an outline most and rarely have one: a scanned report, a bundle merged from a dozen sources, a manual exported by a tool that did not bother, a court filing where someone has to find exhibit 14 quickly. Renaming an existing entry that reads "Heading 2.1.4" is the other common reason people arrive.

How it works

  1. Drop the PDF onto this page. Any outline it already has is read and shown as a tree.
  2. Add entries, retitle them, and drag them to change their level - a bookmark nested under another becomes a sub-entry in the reader's panel.
  3. Set the page each entry points at.
  4. Or turn on generation from headings and let the document's own heading structure become the tree, then tidy what it produced.
  5. Press Save bookmarks and the download starts.

Generating from headings uses the same size-and-position analysis that PDF to Markdown uses. There is no heading tag in a normal PDF - a heading is simply text that is bigger, bolder or more isolated than the text around it - so the structure is inferred from the page rather than read from it. A document that converts to Markdown with sensible headings gets sensible bookmarks from the same reading, and one that does not will need tidying afterwards.

Each entry is written as an explicit destination with the view position left unset, which tells a reader to jump to the page and keep the zoom the reader is already at. Naming a page beyond the end of the document is clamped to the last page rather than written as given: readers handle an out-of-range destination inconsistently and a few refuse to open the file at all.

Nesting is the part that makes an outline useful rather than merely long. A branch with children is written open, so a reader shows the chapters expanded on first opening rather than a row of collapsed triangles. Titles are stored as Unicode, so a heading with an accent, a dash or a non-Latin script comes through as written.

The tree replaces the document's outline rather than merging into it, so what you see in the editor before you save is exactly what the file will have. There is no way to save an empty outline here - the tool needs at least one entry - so this is not the way to strip bookmarks out of a document.

The reading, the analysis and the writing all happen in your browser. Generating an outline for a 400-page scan takes a while because every page's text has to be examined, and the progress bar counts pages rather than guessing; none of those pages leaves the device.

What this tool cannot do

  • Generated bookmarks are inferred from type size and position, not read from tags. A document with decorative large text gets entries that are not chapters, one with a flat visual hierarchy gets a flat tree, and a scan with no text layer produces nothing at all - run OCR first, then come back.

Questions people ask

What are PDF bookmarks, exactly?
They are the document's own table of contents, stored as a tree of entries that each point at a page. Readers show them in a side panel - Acrobat calls it Bookmarks, Preview calls it Table of Contents, Chrome shows it as a document outline. They are separate from a printed contents page, which is just text, and separate from the bookmarks your browser keeps.
Can it build the outline for me?
Yes, from the document's headings. Every page's text is examined and the runs that look like headings - larger type, bolder weight, more space around them - become entries nested by their apparent level. It works well on reports and manuals produced from a word processor, and less well on documents with a flat visual hierarchy. Treat the result as a first draft and tidy it.
How do I make sub-bookmarks?
Nest an entry under another one in the tree and it becomes a child. There is no depth limit worth worrying about - readers handle several levels comfortably, and three is about where usefulness peaks. Branches with children are written open, so the reader shows them expanded when the document is first opened.
My merged PDF lost its bookmarks. Is this the fix?
It is one fix, and the better one is to merge with Merge PDF, which rebuilds each source's outline and re-points every entry at its new page position. If the damage is already done, or if the sources never had outlines, build one here - generation from headings is usually faster than typing a bundle's chapters by hand.
Is the document uploaded to be analysed?
No. The heading analysis runs on your machine, in a Web Worker, which is why a long document takes visible time rather than being instant - the work is happening here rather than on a server with more cores. Nothing about the document, including the chapter titles you type, is transmitted.

Related tools