Skip to content

Extract From PDF

Extract PDF Bookmarks

Export a PDF outline tree, with nesting and target pages intact.

Processed locally in your browser. Your file is not uploaded to any server. How this works

  1. 01Add your file
  2. 02Extract PDF Bookmarks
  3. 03Download

Runs in your browser · nothing uploaded

About extract PDF bookmarks

The bookmarks panel in a PDF viewer is a rendering of the document outline: a linked tree of dictionary objects, each with a title, a destination and pointers to its parent, siblings and children. It is the document's own idea of its structure, authored deliberately rather than inferred, which makes it the most reliable table of contents a PDF contains — more reliable than the printed contents page, which can silently go stale after pages are inserted. This tool walks that tree and flattens it into a readable, indented list with the target page for every entry. People use it to build a contents page for a merged document, to audit whether a long report is actually navigable, to check that outline destinations still point where they should after an edit, and to turn a structured PDF into an outline they can work with somewhere else.

How to extract PDF bookmarks

  1. 01

    Load the PDF

    The outline dictionary is read from the document catalogue and its tree walked in order.

  2. 02

    Read the indented outline

    Nesting depth is preserved, so the hierarchy an author built is visible at a glance.

  3. 03

    Check the targets

    Each entry shows the page it resolves to, which is how stale destinations after an edit get caught.

  4. 04

    Export it

    Copy the outline as indented text, Markdown or JSON for reuse elsewhere.

What this tool does

  • Full outline tree with nesting depth preserved to any level
  • Target page resolved per entry, including through named destinations
  • Original sibling order maintained, matching what a viewer's panel displays
  • Open and closed state per node, showing how the author intended the panel to appear
  • Entries whose destination no longer resolves flagged rather than silently dropped
  • Title text decoded to Unicode, so non-Latin outlines come out readable
  • Export as indented text, Markdown or JSON

Limitations worth knowing

Every PDF tool has constraints. Stating them plainly is more useful than discovering them halfway through your work.

  • Plenty of PDFs have no outline at all. An empty result is a fact about the document, not an error — and it is the normal case for scans, invoices and short documents.
  • Bookmarks are authored, not derived. A document with headings on every page can still have an empty outline, because nothing generated one.
  • This reads the outline; it does not create or repair one. Generating bookmarks from headings requires interpreting page content and is a different operation.
  • A destination pointing at a deleted page resolves to nothing. That is reported, but the original intent cannot be recovered from the file.
  • Outline entries can carry actions other than a simple GoTo — opening a URL, for instance — and those are reported by type rather than as a page number.

How your file is handled

This tool runs entirely inside this browser tab. When you choose a file, your browser reads it from your own disk and hands the bytes to JavaScript running on this page — no network request carries your document anywhere. You can confirm that yourself: open your browser’s developer tools, switch to the Network panel, and run the tool. You will see no upload.

Nothing is stored after the fact. Closing or reloading this tab discards the file, the result and everything derived from them, because none of it ever left your machine. Read how local processing works.

Questions about extract PDF bookmarks

My PDF has no bookmarks. Why?

Because nobody made any. An outline is authored explicitly, or generated by an export process configured to build one from heading styles. A document exported without that setting, printed to PDF, or produced by scanning has no outline no matter how clearly structured its pages look.

What is the difference between bookmarks and the printed table of contents?

The bookmarks are a navigation structure in the file, read by the viewer's side panel. The printed contents page is ordinary page content — text and, if you are lucky, internal link annotations. They are maintained separately, which is why they drift apart, and comparing this export against the printed page is a quick way to find out which one is wrong.

Are the target page numbers reliable after the document was edited?

That is precisely what this shows you. Destinations are stored as references, so inserting or deleting pages can leave entries pointing at the wrong place or at nothing. Each entry here is resolved to the page it actually lands on, which makes a systematic off-by-several shift obvious.

Can I use this to make a contents page for a merged document?

Yes, that is a common use. Merge with bookmark preservation enabled so each source document's outline is nested under its own entry, then export the combined tree here and you have an accurate contents list with real page numbers for the assembled file.

Does this preserve the nesting?

Yes, to any depth. The tree is walked through parent and child pointers rather than being flattened, so a four-level outline exports as a four-level outline in indented text, Markdown or JSON.

Read more about this