Split PDF by Bookmarks Online: Free Outline Splitter Guide
Split PDF by bookmarks online free: read the outline, slice at every chapter, download a ZIP. For dissertations, manuals, e-books — all browser-local, no upload.
A 400-page dissertation. Eight chapters. Your committee asks for Chapter 3 and Chapter 5 as separate PDFs by Friday. The bookmarks already mark every chapter — you can see them in the sidebar of Acrobat or Preview — but Acrobat's built-in extract dialog wants page ranges, not chapter names, and you don't feel like counting from the outline by hand. There has to be a tool that reads the outline and slices on it. There is, and most of the ones that show up for split pdf by bookmarks online upload your dissertation to a server you've never heard of. That's the wrong trade for an embargoed academic document.
This guide covers the workflow end to end. What a PDF outline actually is (it's a structured tree, not a sidebar widget), why splitting by page count is the wrong operation for chapter- aware work, the three real approaches developers and editors use in 2026, and how to do it with /split-by-outline without the file ever leaving your laptop.
The 400-page dissertation problem
The exact scenario shows up under different names. Same shape every time:
- Dissertation editor. Submitting Chapter 3 to the methodology reviewer and Chapter 5 to the results reviewer. The full thesis is under embargo until publication; uploading it to a third-party splitter is a contract violation.
- Technical manual maintainer. A 600-page product manual where each section is what a support engineer attaches to a ticket. Splitting by section once and keeping the parts ready beats scrolling a 600-page document on every ticket.
- E-book publisher. A reference book with 14 chapters, each one bookmarked. The marketing team wants Chapter 1 as a free preview PDF and Chapter 14 as a standalone author Q&A. The rest stay locked.
- Compliance bundle distributor. A 1,200-page audit pack with bookmarks for every section. Each section routes to a different reviewer. Split, ZIP, distribute — never email the entire bundle.
- Course pack splitter. A semester reading compilation with one bookmark per week. Push one weekly PDF to the LMS each week instead of asking students to find the right page in a giant file.
- Legal exhibit handler. A bates-numbered bundle where each exhibit is bookmarked. Split, name with bookmark titles, serve the relevant exhibits with the bates numbers preserved on the included pages.
All six share two constraints. The cut points come from the document's own structure — you don't want to type page numbers. And the source document often shouldn't leave your machine. A free online splitter that uploads the file to a third-party server fails the second constraint, even if the first works.
What's a PDF outline, anyway?
Most people who use PDFs every day have never thought about the outline as a data structure. They've seen the bookmarks sidebar in Acrobat or the table of contents pane in Preview. That sidebar is a UI rendering of an underlying tree.
In the PDF specification (ISO 32000-2:2020 §12.3.3), the outline is a doubly-linked tree of dictionary objects. Each entry has a title, optional nested children, and a destination — usually a page reference, sometimes a named destination string that the document defines elsewhere. When you click a bookmark in Acrobat, the reader resolves the destination to a page index and scrolls there. The structure looks like this:
Chapter 1 — Introduction (level 1, p.1)
1.1 Background (level 2, p.3)
1.2 Research Questions (level 2, p.7)
Chapter 2 — Literature Review (level 1, p.12)
2.1 Prior Work (level 2, p.13)
2.1.1 Browser-Local Tools (level 3, p.14)
2.1.2 Server-Based Tools (level 3, p.20)
2.2 Gaps (level 2, p.28)
Chapter 3 — Methodology (level 1, p.34)
Chapter 4 — Results (level 1, p.55)
Chapter 5 — Discussion (level 1, p.78)
References (level 1, p.95)
Appendix A — Code Samples (level 1, p.108)Two things matter for splitting. First, the tree has depth levels — top-level entries are usually chapters, nested entries are sections and sub-sections. Second, the destination is resolvable to a 0-indexed page number, which is exactly what you need to compute split ranges.
Books, dissertations, technical manuals, generated reports (LaTeX with hyperref, Word with heading styles, Markdown to PDF via Pandoc) all include outlines. Scanned PDFs and quick exports from Excel or PowerPoint usually don't. To check yours: open the PDF in any reader and look for a sidebar labelled Bookmarks, Contents, or Outline. Empty or missing? The split-by-outline tool can't help you — use /split (page-range splitting) or /extract-pages instead.
Why split-by-N-pages doesn't work for chapter-aware splitting
The most common online PDF splitter operation is “split every N pages” — give it a 100-page PDF and N=10, get ten 10-page parts. Useful for splitting scanner output into email-attachment-sized chunks. Useless for chapter-aware work, for one obvious reason: chapters aren't equal length.
A typical academic dissertation: introduction 12 pages, literature review 22 pages, methodology 21 pages, results 23 pages, discussion 17 pages, references 13 pages, appendix 12 pages. The longest chapter is roughly twice the shortest. Any split-by-N-pages choice cuts at the wrong place. N=15 cuts literature review in half. N=20 puts methodology and most of the results into one part. There is no single N that aligns to chapter boundaries.
You could split-by-page-ranges manually: type 1-12, 13-34, 35-55, ... reading the start and end pages off the outline. That works but it's ten minutes of careful typing and one off-by-one error away from a chapter that starts on its own previous page. The whole reason to split by outline is that the outline already knows where chapters start. Reading those positions twice — once when you wrote the outline, once when you type page ranges — is the kind of duplicate work computers exist to remove.
pdftk vs Adobe Pro vs browser — three approaches
Three real approaches dominate chapter-aware splitting in 2026. Each has a clear best-fit and a clear failure mode.
1. pdftk (command-line, no GUI)
pdftk is the Swiss army knife of PDF manipulation — pdftk in.pdf cat 1-12 output ch1.pdf and you have chapter 1. To split-by-outline, you first dump the outline:
pdftk dissertation.pdf dump_data | grep -E 'BookmarkTitle|BookmarkPageNumber'
Then write a shell script that walks the bookmarks, builds page ranges, and runs pdftk cat for each range. Reliable, scriptable, runs locally. The downsides are obvious: you need to install pdftk (a 30MB Java-port binary on most systems, or the older C++ build), you need to write the script, and there's no preview before commit. For a one-off dissertation it's overkill. For a publishing pipeline that splits 200 books a quarter, it's the right pick.
2. Adobe Acrobat Pro (GUI, paid)
Acrobat Pro's “Split Document” dialog can split by top-level bookmarks — File > Split Document > Top-Level Bookmarks. The GUI is clean, the preview is built in, and the output naming uses bookmark titles. The catch is that Acrobat Pro starts around $20-23/month (USD) and it doesn't do depth selection — top-level only. For a one-off dissertation split, paying $23 for one operation is a hard sell. For an editor who splits 50 manuscripts a month and already has Acrobat for other work, it's already paid for.
3. Browser-local (the /split-by-outline tool)
The path the PDF Mavericks tool ships. Drop a PDF, the tool reads the outline using pdfjs-dist (Mozilla's pdf.js), you pick a depth level, hit Split, and pdf-lib slices the file into N output PDFs which JSZip packs into a ZIP. The whole flow runs in your tab — the dissertation never leaves the laptop. Free, no signup, no install. Trade-offs are small: 200MB soft size limit because of browser memory, and cross-document link annotations don't survive (the same limitation as pdftk).
Which to pick — three-line decision tree
- One-off, dissertation, manual, e-book under 200MB → browser- local /split-by-outline.
- Already paying for Acrobat Pro, top-level split is enough → Acrobat's built-in dialog.
- Repeat operation, scriptable pipeline, no GUI needed → pdftk with a custom shell wrapper.
How to split by bookmarks in 3 steps
- Open /split-by-outline and drop your PDF. Drag onto the dropzone or click Choose PDF. The tool reads the document outline using pdfjs-dist's
doc.getOutline()call and resolves each bookmark's destination to a page index — typically a few hundred milliseconds even on a 500-page book. If the outline is empty, you get a clear message and links to /split and /extract-pages instead. - Pick the depth level. Top-level only is the default — one file per chapter. Levels 1-2 produces one file per section. Levels 1-3 goes one level deeper. All levels splits at every entry. The outline preview on the left highlights which entries become split points; the output preview on the right shows the resulting filenames and page ranges before you commit.
- Hit Split, download the ZIP. pdf-lib copies pages into N output documents using
copyPages(structure-level, no rasterization), JSZip packs them with DEFLATE level 6 compression, and a download link appears. Click it to save<original>-split-by-outline.zip. Each PDF inside is named after its bookmark title or, in numeric mode, part-NN.
Levels: top-level only or deeper
The depth selector is the most consequential choice in the tool. The same PDF produces wildly different output counts depending on which depth you pick. Using the dissertation outline above:
- Top-level only → 7 files (Chapter 1, Chapter 2, Chapter 3, Chapter 4, Chapter 5, References, Appendix A). The most common pick for splitting a book or dissertation. Each output is a self-contained chapter.
- Levels 1-2 → 11 files. Each section becomes its own PDF. Useful when the section, not the chapter, is the unit you want to share — most technical manuals, API references, and scholarly review articles.
- Levels 1-3 → 13 files. Sub-sections become their own files too. Rare but useful for highly nested documents (compliance bundles, regulatory filings) where every nested heading represents a discrete thing.
- All levels → all the way down. For a deeply nested manual, this can produce hundreds of tiny files. Use only when you actually want each leaf entry as its own PDF.
Rule of thumb for picking depth: ask “what's the unit a recipient would attach to an email?” If it's a chapter, top-level only. If it's a section, Levels 1-2. If it's a sub-section, Levels 1-3. All levels is rarely the right answer; it's mostly there for the edge case of a flat outline where every entry is already at the same depth.
Filename patterns: title vs numeric
Two filename modes, two trade-offs.
Title mode uses the bookmark title: dissertation-Chapter 3 Methodology.pdf. The advantage is that you can find the right file at a glance — the filename tells you what the file is. The cost is that titles aren't always filename-safe. The tool sanitizes by stripping / \\ : * ? " < > |, trimming to 100 characters, and appending -2, -3 to disambiguate duplicates. For 95% of academic and technical documents, title mode is the right pick.
Numeric mode uses zero-padded sequential numbers: dissertation-part-01.pdf, dissertation-part-02.pdf. Predictable, sortable in any file manager, no character-encoding surprises. Use it when the document has duplicate chapter titles (a survey paper's “Background” sections, all named the same), non-Latin titles where transliteration would be lossy, or when you're scripting a downstream operation that needs predictable filenames.
If the first bookmark doesn't point to page 1, the leading pages (cover, dedication, copyright, table of contents itself) get bundled into a Front matter file. If page 1 is the first bookmark, no Front matter file gets generated. The behavior matches how most book-splitting workflows work: chapters split cleanly, prologue material rides along as one preserved chunk.
Why no upload — privacy by architecture
Most online PDF splitters — iLovePDF, Smallpdf, PDF24, Sejda — accept your file on a server, slice it there, and hand back a download link. The privacy policies promise deletion after some interval. For a dissertation under embargo, an unpublished manuscript, a client's book draft, an internal compliance bundle, or a sealed court exhibit, the file did sit on a server you don't control. The deletion promise is a promise; the leak surface during the round trip is real.
The /split-by-outline tool doesn't have a server endpoint that receives your PDF. The page is a static HTML+JS bundle. When you drop a file, it goes into the browser's memory. pdfjs-dist reads the outline locally. pdf-lib copies pages in browser memory. JSZip packs them in browser memory. The download link points at a blob URL inside your browser — the ZIP is built on your machine and never touches our infrastructure. Disconnect from the internet after the page loads and the splitter still works.
Your PDF never leaves your browser
PDF Mavericks reads the outline, copies pages, and packs the ZIP entirely in your browser using pdfjs-dist, pdf-lib, and JSZip. No file is uploaded to any server. Embargoed dissertations, sealed exhibits, and client manuscripts stay on your laptop.
Frequently asked questions
What if my PDF has no bookmarks?
If the outline is empty, split-by-outline has no cut points to use. Your alternatives are /split (cut by page range or one file per page) and /extract-pages (pick specific pages and produce a single subset PDF). The PDF Mavericks tool detects an empty outline up front, before you click Split, and points you to the right alternative — no wasted clicks. PDFs without bookmarks are common: scanner output, quick exports from Excel, slide deck PDFs, screenshot collections. For those, page-range splitting is the right tool.
How do nested bookmarks (chapters and sub-sections) work?
PDF outlines are trees. Top-level entries are usually chapters; nested under each are sections (level 2), and under those, sub-sections (level 3). The depth selector controls which entries become split points. Top-level only treats every chapter as a single output — most common for splitting a book or dissertation. Levels 1-2 produces one file per section, useful for technical manuals where each section is the unit. Levels 1-3 goes one level deeper. All levels splits at every entry, which can produce hundreds of tiny files for a deeply nested manual.
What characters get stripped from the output filenames?
Filesystem-hostile characters get sanitized: forward slash, backslash, colon, asterisk, question mark, double quote, less-than, greater-than, pipe. Title-mode filenames also trim to 100 characters and append -2, -3 etc. to disambiguate when two bookmarks would produce the same filename (a duplicate Summary heading in different chapters, for example). If the title becomes empty after sanitization — possible with non-Latin punctuation-only titles — the tool falls back to part-NN. Numeric mode skips the title entirely and uses zero-padded sequential numbers, useful when titles are duplicated or non-Latin.
Why do some bookmarks have no resolvable destination?
Some bookmarks are pure section labels with no page reference — a heading entry that exists for navigation but doesn't point anywhere. Others use named destinations that the document doesn't actually define (a bug in the original PDF generator). The tool skips both kinds: only entries with a resolvable page index produce a split point. You'll see this most often with PDFs converted from Word documents that used heading styles inconsistently, or with academic publisher PDFs where the outline was edited by hand and references became stale.
Can I edit the bookmarks before splitting?
Not in this tool — bookmark editing is out of scope. If your PDF needs new bookmarks added, existing ones renamed, or destinations adjusted, the right tools are pdftk update_info, qpdf with a JSON manifest, or Adobe Acrobat Pro's outline editor. Once the outline is correct, come back to /split-by-outline and run the split. Editing the outline is a separate workflow with its own complexity (named destinations, page references by indirect reference); keeping it out of the splitter keeps the splitter simple.
How is split-by-outline different from regular /split?
Regular /split asks where to cut — page 5, every 10 pages, one file per page. You provide the cut points. Split-by-outline reads the cut points from the document's own bookmarks. For a 400-page dissertation with 8 chapters, /split would need you to type the start page of each chapter manually. Split-by-outline reads the chapter starts from the outline tree and produces 8 PDFs in one click. The trade-off: split-by-outline only works on PDFs that have an outline; regular /split works on any PDF.
What is the file size limit?
Soft limit around 200MB for browser memory reasons. The pdf-lib copyPages step holds the source document and the output documents in memory simultaneously. A 200-page, 50MB PDF splits into 12 chapters in a few seconds on modern hardware. A 1500-page, 500MB technical manual will struggle on older devices — the browser may stall mid-split. For very large PDFs, splitting into fewer, larger parts (Top-level only) is much lighter on memory than All levels.
Does the file get uploaded to a server?
No. The PDF stays on your device. pdfjs-dist reads the outline locally. pdf-lib copies the pages and produces the output documents in browser memory. JSZip packs them into a ZIP, also in browser memory. The download link points at a blob URL — the file is built on your machine and never touches our infrastructure. You can disconnect from the internet after the page loads and the splitter still works. PostHog logs anonymous events (file size only, tool started, tool completed) to spot UX issues; document content is never sent.
Will internal links and cross-references survive the split?
Page-level content survives intact: text, images, vector graphics, embedded fonts, AcroForm field annotations on the included pages. The document outline of each output file is not rebuilt — pdf-lib doesn't rewrite outline entries to point at renumbered pages. Cross-page link annotations that pointed to pages in a different output part become dangling references (Acrobat shows a broken-link icon when clicked). For most splitting use cases this is fine — once a chapter is its own file, internal references to other chapters are expected to be absent. If you need preserved cross-document navigation, splitting is the wrong operation.
Can I split a password-protected PDF?
Owner-password-only PDFs work — pdf-lib loads them with ignoreEncryption: true and copies pages without needing the password. PDFs that require a user password just to open won't load in the splitter. For those, run /unlock-pdf first if you have the password, then come back to split. We can't crack unknown passwords; that's not what the tool does, and we don't keep a password-recovery service running.