How to merge PDF files on any device
Four methods that work, and what each one did to 41 real documents.
Free toolMerge PDFEvery page from every file on one canvas. Drag a page anywhere, turn it, drop it, undo it. The pages are copied rather than redrawn, so nothing is flattened and nothing is uploaded.Open the PDF mergerThe short answer
On a Mac, drag one PDF into another's thumbnail sidebar in Preview. On Windows there is no built-in way, so use a browser tool or a command-line tool. Both work offline once you have them.
Then search the merged file for a word you know is in it. Merging is supposed to copy your pages, and the macOS framework behind the built-in route silently broke the searchable text in 8 of the 41 documents tested below. The pages still looked perfect.
On a Mac, Preview already does it
No download, no account, and it works with the network off.
Open the first PDF in Preview
Double-click it, or right-click and choose Open With, Preview.
Show the thumbnails
View, then Thumbnails. A sidebar of pages appears down the left.
Drag the second PDF in
Drag its icon from Finder into the sidebar, dropping it between the pages where it should land.
Export, do not just close
File, Export as PDF. Saving over the original with ⌘S also works, and is harder to undo.
Preview will also let you drag single pages between two open documents, and rotate a page with ⌘R. What it will not tell you is what the export did to the file, which is the next section.
On Windows, there is nothing built in
This surprises people, and it is worth stating plainly: Windows 11 has no merge feature. Edge reads PDFs and Microsoft Print to PDF writes them, but printing only ever handles one document at a time.
| What people try | What actually happens |
|---|---|
| Print to PDF from Edge | Prints the one document that is open. There is no way to queue a second into the same output. |
| Select both files, right-click, Print | Sends two separate print jobs, producing two separate files. |
| Paste both into Word | Word converts the PDF to editable text and reflows it. The layout is not preserved. |
| A browser tool or a CLI tool | Works. This is what the rest of this guide is about. |
What each method did to 41 real documents
Every method here was run over the same 41 PDFs on 13 September 2026: 105 pages, 64.37 MB in total, ranging from a 1.9 KB two-page agreement to a 27.4 MB scanned booklet. Each file was passed through the merger on its own, so the output should be the same document coming back.
| Method | Text still extractable | Median size | Worst size | 64.37 MB became |
|---|---|---|---|---|
pdfunite, poppler 26.08 | 41 of 41 | 100.0% | 123.2% | 64.29 MB |
| Browser merge that copies page objects | 40 of 41 | 100.0% | 113.5% | 64.24 MB |
| PDFKit, the macOS PDF framework | 33 of 41 | 116.4% | 886.2% | 84.49 MB |
Method: macOS 26.6.2 on Apple silicon, poppler's pdftotext 26.08.0 as the judge. Extracted text was compared character for character with the same extraction from the original. The PDFKit row is a Swift program that opens each document with PDFDocument, inserts every page into a new one and writes it out, which is the API path the Automator "Combine PDF Pages" action takes. What was measured is that framework, not clicks in the Preview window, so treat the row as what the macOS PDF writer does rather than as a test of one app's menu.
The eight PDFKit failures are worth looking at
On one invoice, the extracted text went from 1,057 characters to 143, and those 143 were C B G G B D A B B B B B B B B D G D B. The glyphs on the page are unchanged. What the file lost is the map from each glyph back to a character, so the words are still drawn and no longer readable by anything that is not an eye.
It is not the merging that does it. Opening that same invoice with PDFDocument and writing it straight back out, with no second file involved, produces the identical damage. It is PDFKit's writer, and it shows up on documents whose fonts are subset without a preserved character map. Five of the eight were machine-generated invoices and statements, which is exactly the kind of document people merge.
PDFKit also grew 37 of the 41 files. The worst was a 1.9 KB file that came out at 17,077 bytes, and a 462 KB article that came out at 1.73 MB. Small text-only PDFs suffer most, because PDFKit writes a full resource set where the original shared one.
Check for this in ten seconds. Open the merged file and press ⌘F, then search for a word you can see on the page. If the search finds nothing, the text layer did not survive.
The command line, when there are fifty of them
Two tools do this well, and both are a single command.
| Tool | Command | Notes |
|---|---|---|
| poppler | pdfunite a.pdf b.pdf out.pdf | The only method that kept all 41 text layers intact. No page selection, no rotation. |
| qpdf | qpdf --empty --pages a.pdf b.pdf 1-5 -- out.pdf | Takes page ranges per file, which pdfunite cannot. |
| Ghostscript | gs -sDEVICE=pdfwrite -o out.pdf a.pdf b.pdf | Rebuilds and re-compresses everything. Use it when you want that, not to merge. |
Install poppler or qpdf with Homebrew on a Mac, or your package manager on Linux. On Windows, both ship as standalone binaries. This is the right answer for a folder of a hundred scans and the wrong answer for one job you need done now.
What a merge cannot carry across
A merged PDF is a new document, and a few things are properties of the old document rather than of any page in it. Every tool in this guide drops most of them.
| What | What happens to it |
|---|---|
| Bookmarks in the source files | Dropped by nearly every merger. Some can write a fresh one per file instead. |
| Tagging and reading order | Dropped. The text is identical, but a screen reader falls back to the visual order. |
| Links to a named place in the same file | Broken unless the merger rewrites them. Good ones make them inert rather than wrong. |
| Form fields with the same name in two files | Become one linked field. Typing in one fills the other. |
| Encryption | Blocks the merge outright. Remove the password before you start. |
| Digital signatures | Invalidated. A cryptographic signature covers a byte range of the file it signed, and a merged file is a different file. |
That last row is worth remembering before you merge a signed contract. Nothing warns you: the signature appearance is still drawn on the page, and only a verifying reader will tell you it no longer holds.
Which one to use
One quick job on a Mac
Preview. It is already open. Then search the result for a word you can see, and use something else if the search comes up empty.
Pages that need rearranging
A browser tool with a page canvas. Preview can drag pages too, but only between windows you have open.
A folder of them, on a schedule
qpdf in a shell loop. It handles page ranges and it never asks you to click anything.
Whatever you use, the check is the same and it takes a moment. Count the pages, search for a word you can see on one of them, and compare the size against the sum of the originals. A merge that doubled the bytes has rebuilt your document rather than combined it, and a rebuild is where text layers go missing.