PDF Merger
100% LocalCombine multiple PDF documents into a single file safely.
Upload 2 or more PDFs. Drag to reorder, then merge into a single file.
Learn More
The Mobile PDF Workflow: Scan, Sign, and Edit PDFs From Your Phone
PDF Compression Trade-offs: Quality vs. File Size Explained
Learn how to shrink your PDFs without making them unreadable. Understand DPI, image downsampling, and font embedding to find the perfect balance for your documents.
PDF Privacy: How to Scrub Metadata and Prevent Tracking
What is PDF Merger?
Frequently Asked Questions
Technical Deep Dive
PDF Merger
Need to join multiple PDF files? This PDF Merger runs entirely in your browser with pdf-lib. Drag and drop your files, reorder them, and generate a single combined PDF without ever uploading sensitive documents to a server.
qpdf and PDFsam are the CLI/desktop defaults. This merger concatenates PDFs in the tab so signed offers and IDs are not uploaded.
Drop two one-page PDFs. The output page count should be 2 and open in the browser viewer. Encrypted inputs will fail until you remove the password.
Very large scans can exhaust memory. For 200+ page books, use qpdf locally.
01 How Local Merging Works
ArrayBuffers. The library parses the cross-reference table and page tree directly in memory.
02 Comparison: Cloud vs. Local
| Feature | Cloud Services | AllDevTools (Local) |
|---|---|---|
| Privacy | Files Uploaded | 100% Private |
| Speed | Upload + Processing | Instant Execution |
| Offline Use | No | Yes |
| Security | TLS Required | Sandbox Isolated |
03 What actually gets copied
A PDF is a graph of numbered objects: a catalog points at a page-tree node, which points at page objects, which point at content streams, fonts, and images. Merging is not "gluing files together" ā pdf-lib walks the page tree of each source document, deep-copies every object a page depends on into the output document, and renumbers them so nothing collides. That is why the result is lossless: no page is re-rendered, no image is re-encoded, no font is re-subsetted. Selectable text stays selectable; a 600-DPI scan stays 600 DPI.
It also explains the two things people find surprising. First, bookmarks and the document outline are usually dropped. The outline lives on the catalog, not the pages, and merging builds a fresh catalog. Second, form fields can clash. If two source PDFs both contain a field literally named signature, the merged AcroForm now has two widgets bound to one field and they update together. Flatten forms before merging if that matters.
04 Where merges go wrong
Encrypted inputs. An encrypted PDF stores its objects under an RC4 or AES layer keyed by the password. The parser cannot read the page tree until it is decrypted, so the merge fails outright rather than producing a broken file. Remove the password in Preview, Acrobat, or qpdf --decrypt first.
Output larger than the sum of inputs. If three source files each embed the same 4 MB font, the naive result carries three copies. pdf-lib deduplicates identical objects it can prove are identical, but PDFs generated by different toolchains rarely produce byte-identical font programs. Run the merged file through a PDF compressor to reclaim that space.
Memory. Every byte of every input is held in browser memory at once, plus the output. A dozen 5 MB documents is comfortable; a 400 MB book scan on a phone is not. When a merge stalls, close other tabs, or merge in two passes (20 files, then merge the results).
Mixed page sizes. Letter and A4 pages are preserved at their true dimensions, so a merged file can visibly "step" between sizes in a viewer. That is correct behaviour; normalise with a resize tool beforehand if you need a uniform document.
05 When to reach for qpdf instead
This tool is built for the common case: a handful of PDFs you will not upload to a stranger's server. Drop to qpdf (or PDFsam) when you need page-range selection (qpdf in.pdf --pages . 1-5,9 -- out.pdf), when the inputs stay encrypted and you have the password, when you want to preserve or rebuild the outline, when you are scripting the merge in CI, or when the files are large enough that a native binary's streaming parser matters. For everything else, local browser merging is faster and the documents never leave your machine.