AO

tool · live · runs on your machine

Merge PDF

Combine any number of PDFs into one — no file limit, no account, nothing uploaded. Nothing is uploaded — your files never leave this tab. No sign-up, no size cap, no daily limit.

Drop files here or click to choose · or paste from clipboard

Why the free tiers all have a limit

Every large PDF site meters something: files per day, total size, sometimes both. ilovepdf, Smallpdf and the rest are not being mean — every merge you run costs them the bandwidth to receive your documents and the processor time to combine them. Rationing is how the free tier stays solvent.

This page combines the files on your own machine. There is no upload, so there is nothing for us to ration and nothing to meter. Add two PDFs or two hundred.

It also means your documents stay yours. The things people most often merge — contracts, invoices, medical records, bank statements, a scanned passport for a visa application — are precisely the documents you would think twice about handing to an unknown server.

What happens to the pages

Pages are copied, not re-rendered. Text stays selectable and searchable, vector graphics stay sharp at any zoom, and image quality is untouched, because nothing is re-compressed. The output is a new PDF whose pages are the originals in the order you chose.

Files merge in the order you add them, and each row has a × to remove it if you change your mind.

What does not come across

Worth knowing before you rely on it. The merge copies page content. Things attached to the document as a whole — bookmarks and the outline tree, interactive form fields, and some annotation types — are not carried into the combined file.

That is a genuine limitation of copying pages between documents rather than an oversight, and it is better stated here than discovered afterwards. If your PDFs are plain documents or scans, which is the usual case, none of this affects you. If you are merging fillable forms and need the fields to survive, this tool is not the right one.

Password-protected PDFs are refused with a clear message rather than producing a broken file.

For machines

window.AOPdfMerge.mergePdfs(blobs, {onProgress}) -> Promise<{blob, pages, files}> — Merge an ordered array of PDF Blobs into a single PDF. Pages are copied in the order the array gives them.

A machine-readable description lives at index.md. Third-party components and their licences are listed on the licences page.