-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathguide-merge-bookmarks.html
More file actions
222 lines (210 loc) · 12.5 KB
/
Copy pathguide-merge-bookmarks.html
File metadata and controls
222 lines (210 loc) · 12.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="theme-color" content="#0d0f0c" />
<meta name="format-detection" content="telephone=no, date=no, address=no, email=no" />
<link rel="preload" href="vendor/fonts/ibmplexmono-400.woff2" as="font" type="font/woff2" crossorigin />
<link rel="preload" href="vendor/fonts/fraunces-normal-300.woff2" as="font" type="font/woff2" crossorigin />
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data: blob:; font-src 'self'; connect-src 'self' https://api.counterapi.dev https://formsubmit.co; object-src 'none'; base-uri 'self'; form-action 'self' https://formsubmit.co;" />
<meta name="referrer" content="strict-origin-when-cross-origin" />
<title>Why did merging lose my PDF's bookmarks? — ClientPDF Guide</title>
<meta name="description" content="If a PDF's bookmarks disappear after merging, it's not a glitch — most merge tools don't carry the outline tree over. Here's why, and what to do." />
<link rel="canonical" href="https://abyworkings-coder.github.io/clientpdf/guide-merge-bookmarks.html" />
<meta property="og:type" content="article" />
<meta property="og:title" content="Why did merging my PDFs lose the bookmarks and table of contents?" />
<meta property="og:description" content="If a PDF's clickable bookmarks or table of contents disappear after merging, it's not a glitch — most browser-side merge tools, including this one, don't carry the outline tree over. Here's why, and what to do about it." />
<meta property="og:url" content="https://abyworkings-coder.github.io/clientpdf/guide-merge-bookmarks.html" />
<meta property="og:site_name" content="ClientPDF" />
<meta property="og:image" content="https://abyworkings-coder.github.io/clientpdf/og-image.jpg" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Why did merging my PDFs lose the bookmarks and table of contents?" />
<meta name="twitter:description" content="Merged PDF missing its bookmarks or TOC? Here's the real reason, and what to do about it." />
<meta name="twitter:image" content="https://abyworkings-coder.github.io/clientpdf/og-image.jpg" />
<link rel="icon" href="./logo.svg" type="image/svg+xml" />
<link rel="icon" href="./favicon-32.png" sizes="32x32" type="image/png" />
<link rel="icon" href="./favicon-16.png" sizes="16x16" type="image/png" />
<link rel="apple-touch-icon" href="./apple-touch-icon.png" />
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Why did merging my PDFs lose the bookmarks and table of contents?",
"description": "If a PDF's clickable bookmarks or table of contents disappear after merging, it's not a glitch — most browser-side merge tools, including this one, don't carry the outline tree over. Here's why, and what to do about it.",
"author": { "@type": "Organization", "name": "ClientPDF" },
"publisher": { "@type": "Organization", "name": "ClientPDF" },
"mainEntityOfPage": "https://abyworkings-coder.github.io/clientpdf/guide-merge-bookmarks.html",
"image": "https://abyworkings-coder.github.io/clientpdf/og-image.jpg",
"datePublished": "2026-07-27",
"dateModified": "2026-08-04"
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://abyworkings-coder.github.io/clientpdf/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Guides",
"item": "https://abyworkings-coder.github.io/clientpdf/guide.html"
},
{
"@type": "ListItem",
"position": 3,
"name": "Why did merging my PDFs lose the bookmarks and table of contents?",
"item": "https://abyworkings-coder.github.io/clientpdf/guide-merge-bookmarks.html"
}
]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Why did my PDF's bookmarks disappear after merging?",
"acceptedAnswer": { "@type": "Answer", "text": "A PDF's clickable bookmarks (its outline tree) are stored separately from the pages themselves, in the document catalog. Merge tools that work by copying pages from one PDF into a new document — which is how most lightweight and browser-based mergers work — carry the page content over but don't rebuild that separate outline tree, so the bookmarks are silently dropped." }
},
{
"@type": "Question",
"name": "Is this a bug in the merge tool?",
"acceptedAnswer": { "@type": "Answer", "text": "It's a missing feature, not a bug that corrupts your file. The pages, their content, and their internal page-to-page links are intact. Rebuilding a bookmark tree across merged documents is meaningfully more work than copying pages, so many merge tools, including page-copy-based ones, don't implement it." }
},
{
"@type": "Question",
"name": "How do I keep bookmarks when combining PDFs?",
"acceptedAnswer": { "@type": "Answer", "text": "If the bookmarks matter, use desktop software that explicitly advertises bookmark or outline preservation during merge (most full PDF editors do this), or manually rebuild a short bookmark list afterward in a tool that supports adding outline entries. There isn't a way to make a page-copy-based merge carry outlines over without that dedicated support." }
}
]
}
</script>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<a class="skip-link" href="#main-content">Skip to main content</a>
<noscript><div class="noscript-banner">ClientPDF requires JavaScript — all files are processed locally in your browser and never uploaded. Please enable JavaScript to use these tools.</div></noscript>
<div class="grain"></div>
<header class="topbar">
<div class="wrap topbar-inner">
<div class="brand">
<span class="brand-mark">◆</span>
<span class="brand-name">Client<em>PDF</em></span>
</div>
<nav class="toolnav" aria-label="Tools">
<a href="./index.html">Merge</a>
<a href="./split.html">Split</a>
<a href="./delete-pages.html">Delete Pages</a>
<a href="./duplicate-pages.html">Duplicate Pages</a>
<a href="./insert-pages.html">Insert Blank Pages</a>
<a href="./rotate.html">Rotate</a>
<a href="./reorder.html">Reorder</a>
<a href="./compress.html">Compress</a>
<a href="./page-numbers.html">Page Numbers</a>
<a href="./images-to-pdf.html">Images to PDF</a>
<a href="./extract-images.html">Extract Images</a>
<a href="./pdf-to-jpg.html">PDF to JPG</a>
<a href="./watermark.html">Watermark</a>
<a href="./metadata.html">Metadata</a>
<a href="./crop.html">Crop Pages</a>
<a href="./resize.html">Resize Pages</a>
<a href="./grayscale.html">Grayscale PDF</a>
<a href="./border.html">Page Borders</a>
<a href="./image-watermark.html">Image Watermark</a>
<a href="./flatten.html">Flatten Form Fields</a>
<a href="./fill-form.html">Fill Form Fields</a>
<a href="./bookmarks.html">Add Bookmarks</a>
<a href="./split-by-bookmarks.html">Split by Bookmarks</a>
<a href="./pages-per-sheet.html">Pages per Sheet</a>
<a href="./redact.html">Redact</a>
<a href="./tools.html">All Tools</a>
<a href="./guide.html">Guide</a>
</nav>
<div class="topbar-status">
<span class="dot" aria-hidden="true"></span>
<span>running locally in this tab — nothing uploaded</span>
</div>
</div>
</header>
<main class="wrap" id="main-content" tabindex="-1">
<article class="article">
<h1>Why did merging my PDFs lose the bookmarks and table of contents?</h1>
<p class="article-meta">ClientPDF Guide · a 2-minute read</p>
<p>
You merged a few PDFs — maybe a report with a clickable table of
contents, or a book with chapter bookmarks in the sidebar — and the
merged file opens fine, all the pages are there, but the bookmark
panel is empty. Nothing crashed, no pages are missing. This is a
specific, well-understood gap in how most merge tools work, not
damage to your file.
</p>
<h2>Bookmarks live outside the pages, not inside them</h2>
<p>
A PDF's clickable bookmark list (technically its <em>outline
tree</em>) isn't stored as part of any individual page. It's a
separate structure hanging off the document's catalog — a tree of
named entries, each pointing at a page and a position on it. The
pages themselves know nothing about it.
</p>
<p>
Most lightweight merge tools, including this one, work by copying
page objects from each source file into a brand-new PDF document.
That's enough to carry over everything visibly printed on the page —
text, images, internal page-to-page links — because those live on
the page itself. The outline tree does not live on the page, so nothing
about a plain page-copy makes it come along. It has to be read from
the old document, rebuilt entry by entry with corrected page
references, and written into the new document's catalog — a distinct
step that a page-copying merge doesn't perform.
</p>
<h2>Why this tool doesn't do it (yet)</h2>
<p>
ClientPDF's merge is built on <a href="https://pdf-lib.js.org/" target="_blank" rel="noopener">pdf-lib</a>,
the same open-source library nearly all browser-based PDF tools use, because
it's the one mature option that runs entirely client-side with no server
round-trip. pdf-lib has no API for reading or writing a PDF's outline tree at
all — not a partial implementation, a missing one. Any merge tool built on
it, this one included, inherits that gap: it can copy pages faithfully, but
it has no way to rebuild bookmarks even if it tried.
</p>
<h2>What still works after a merge</h2>
<ul>
<li>All pages and their visible content, unchanged.</li>
<li>Links that point from one part of a page to another part of the <em>same</em> source page.</li>
<li>Page order, exactly as you arranged the files.</li>
</ul>
<p>What doesn't carry over: the bookmark/outline panel, and any named destinations the original PDF used for cross-document links.</p>
<h2>What to do if you need the bookmarks</h2>
<ol>
<li>If the source files' bookmarks matter for navigation, merge with desktop software that explicitly lists bookmark or outline preservation as a feature — most full PDF editors do.</li>
<li>If you only need a handful of entries, merge here first, then manually add a short bookmark list in a tool that supports creating outline entries.</li>
<li>If the bookmarks are cosmetic and the page content is what matters, no action is needed — the merge itself is complete and correct, just without that navigation aid.</li>
</ol>
<div class="cta-box">
<p><strong>Try it yourself:</strong> <a href="./index.html">merge a few PDFs</a> and check — the pages and their content will be exactly right, and now you know why the bookmark panel might come up empty.</p>
</div>
<p class="article-meta">Related: <a href="./guide.html">Does merging a PDF online actually upload your file?</a> · <a href="./guide-compress.html">Why didn't compressing my PDF make it smaller?</a> · <a href="./guide-page-numbers-rotated.html">Why are my page numbers sideways or in the wrong corner?</a> · <a href="./guide-split-reorder-form-fields.html">Why did my form fields stop working after a split or reorder?</a> · <a href="./guide-rotate-viewer-mismatch.html">Why does a rotated PDF look fine here but sideways elsewhere?</a> · <a href="./guide-large-file-freeze.html">Why does my browser tab freeze or crash on a large PDF?</a> · <a href="./guide-password-protected.html">Why can't I open my password-protected PDF here?</a></p>
</article>
</main>
<footer class="footer">
<div class="wrap footer-inner">
<span>ClientPDF — built by <a href="https://github.com/abyworkings-coder" target="_blank" rel="noopener">Auto Company</a></span>
<span>No servers were harmed in the making of this tool.</span>
<span class="footer-legal"><a href="./privacy.html">Privacy</a> · <a href="./terms.html">Terms</a></span>
</div>
</footer>
<script src="./counter.js"></script>
</body>
</html>