PDF Tools — Merge, Split, Compress
Three essential PDF operations in one tool. Merge multiple PDFs into one, split a PDF into specific pages, or compress to reduce file size. All in your browser.
TL;DR
Merge, split, and compress run entirely in your browser tabusing the pdf-lib library — your files are read with the browser's File API and never uploaded, so no server ever sees them. That privacy comes with one trade-off: the work happens in your tab's memory, so very large files (roughly 100 MB and up) or hundreds of pages can get slow or run out of memory. For those, plus OCR and aggressive image down-sampling, a desktop tool still wins. The table below shows exactly which operations are fully client-side and where the practical limits sit.
Which PDF operations run fully in your browser
"Client-side" means the operation finishes inside your browser tab without sending the file anywhere. Every operation this tool offers is fully client-side. For context, the table also lists common PDF operations that are not in this tool and notes whether they can realistically be done client-side at all.
| Operation | What it does | Fully client-side? |
|---|---|---|
| Merge | Copies all pages from two or more PDFs into one file, in the order you arrange them | Yes — in this tool |
| Split / extract | Pulls a page range (e.g. 1-3,5,7-9) out of one PDF into a new file | Yes — in this tool |
| Compress | Re-saves the PDF using object streams to remove structural overhead | Yes — in this tool |
| Rotate pages | Turns pages 90/180/270° to fix sideways scans | Yes, technically (pdf-lib supports it) — not in this tool yet |
| Image-level recompression | Re-encodes embedded JPEGs at lower quality to shrink scan-heavy PDFs | Possible client-side, but slow and memory-heavy — desktop is better |
| OCR (make scans searchable) | Recognizes text in scanned images and adds a hidden text layer | In-browser engines exist (Tesseract.js) but are slow — desktop recommended |
| Password / encryption removal | Strips or applies a document open password | Partially — depends on the encryption; use a trusted desktop tool |
You can verify the client-side claim yourself: open your browser's DevTools, switch to the Network tab, then merge or split a file. You will see zero upload requests — the PDF is processed in JavaScript memory and the download comes from a local blob URL.
Practical file-size limits in a browser tab
Because everything happens in your tab, the real ceiling is memory — not an arbitrary upload cap. pdf-lib loads the whole document, decompresses object streams, and builds the output in RAM, which can use roughly 3–5× the file size at peak. A browser tab on a typical laptop has a few gigabytes of headroom, so here is what to expect:
| File / job size | Browser experience | Recommendation |
|---|---|---|
| Under 20 MB | Instant, no lag | Use this tool |
| 20–50 MB | A short pause while processing | Fine in this tool |
| 50–100 MB | Noticeable delay; tab may feel frozen briefly | Works; close other heavy tabs first |
| Over 100 MB or 500+ pages | Risk of slow processing or an out-of-memory crash | Use a desktop tool |
These are rules of thumb, not hard limits. A 60-page text PDF behaves very differently from a 60-page scanned PDF where each page is a high-resolution image. Image-heavy files hit the memory ceiling far sooner. If a merge or split job stalls, splitting it into two smaller jobs almost always succeeds.
What "compress" here actually does (and doesn't)
This is the part people most often misunderstand, so it's worth being precise. Compression here re-saves the PDF with object streams enabled, which packs the document's internal objects more efficiently and strips structural overhead left behind by the software that created the file.
- Great on bloated text PDFs — files exported from word processors, browsers, or older PDF generators often carry redundant structure. Expect roughly 10–30% smaller.
- Little effect on scans — if a PDF is mostly scanned images, the bytes are in the images, not the structure. Re-saving won't shrink them much. The tool will tell you when no meaningful reduction was possible.
- Lossless — it does not down-sample images or reduce quality, so text stays crisp and nothing is thrown away.
To shrink a scan-heavy PDF, the bytes have to come out of the images themselves. The most reliable route is to compress the source images before building the PDF — our Image Compressor handles that. For an existing scanned PDF, a desktop tool that re-encodes embedded JPEGs (such as Ghostscript or Adobe Acrobat) will out-shrink any structure-only pass.
When a desktop tool is the right choice
A browser tool is the fastest, most private option for everyday jobs. But a few situations genuinely call for desktop software:
- Very large files (100 MB+) — desktop apps stream from disk instead of holding everything in a tab's memory, so they don't hit the same ceiling.
- Scanned documents you need to search — OCR is computationally heavy; desktop OCR (Acrobat, ABBYY, ocrmypdf) is dramatically faster and more accurate than in-browser engines.
- Aggressive image compression — tools like Ghostscript can down-sample embedded images to a target DPI, turning a 60 MB scan into a few megabytes — something a lossless structure pass can't do.
- Batch automation — processing hundreds of files on a schedule belongs in a command-line tool or script, not a browser tab you have to keep open.
For merging a few contracts, pulling pages out of a report, or trimming a bloated export before emailing it, the browser tool above is the better choice — it's instant and nothing leaves your device.
Frequently asked questions
Are my PDFs uploaded to a server?
No. Merge, split, and compress all run inside your browser tab using the pdf-lib JavaScript library. The file is read locally with the browser's File API, processed in memory, and the result is offered as a local download. You can confirm this in DevTools → Network: doing a merge or split fires zero upload requests. This is the main reason to prefer it over services like SmallPDF or ILovePDF for confidential documents.
Why didn't compressing my PDF make it much smaller?
Your PDF is probably scan-heavy. This tool compresses losslessly by optimizing the document's internal structure (object streams), which works well on text PDFs but barely touches files whose size lives in embedded images. To shrink a scanned PDF you need to re-encode or down-sample those images — compress the source images first with our Image Compressor, or use a desktop tool like Ghostscript for an existing scan.
What's the largest PDF I can process here?
There's no fixed cap, but everything runs in your tab's memory. Files under 50 MB are smooth, 50–100 MB work with a short delay, and beyond about 100 MB or 500+ pages you risk slow processing or an out-of-memory crash. If a job stalls, splitting it into two smaller jobs almost always works. For genuinely huge files, use a desktop tool.
How do I extract specific pages from a PDF?
Switch to the Split tab, drop in one PDF, and enter a range. The format accepts single pages and ranges separated by commas — for example, 1-3,5,7-9 extracts pages 1 to 3, page 5, and pages 7 to 9 into one new PDF. Pages keep their original order and quality; nothing is re-rendered.
Can I reorder PDFs before merging?
Yes. Add all your PDFs in the Merge tab, then use the up and down arrows next to each file to set the order. The merged file follows the order shown in the list from top to bottom, so you can bundle, for example, a cover letter, resume, and portfolio in exactly the sequence you want.
Can this tool rotate pages or run OCR on a scan?
Not currently — this tool focuses on merge, split, and compress. Rotation is technically possible client-side and may be added later. OCR (making a scanned PDF searchable) is best done with a desktop tool such as Adobe Acrobat or ocrmypdf, because in-browser OCR engines are slow and less accurate on real documents.