Merge PDF Files Online – Free, Fast & Private

Combine multiple PDF files into one in seconds. No upload, no sign-up, no watermark. Drag, reorder, and download your merged PDF instantly — 100% free.

Combine multiple PDFs into one file in seconds

Upload two or more PDF files, drag them into the order you want, and download a single merged PDF — no sign-up, no watermark, no file size cap that kicks you off after the first upload.

Everything runs directly in your browser. Your documents are never sent to any server, which matters when you're combining anything sensitive — contracts, payslips, medical records, or client reports.

How to merge PDF files

  1. Add your files — click "Choose files" or drag and drop two or more PDFs onto the tool above.
  2. Set the order — drag the thumbnails to arrange the pages exactly as you want them in the final document.
  3. Click Merge — the tool stitches the files together inside your browser in a few seconds.
  4. Download — save the combined PDF to your device. Done.

You can add as many files as you need in one go. If you realise you've added the wrong file, just remove it and add the correct one before merging.

Worked example

Say you have three separate files: cover-letter.pdf (1 page), cv.pdf (2 pages), and portfolio.pdf (5 pages). You want them in that exact order as a single submission.

  • Upload all three files.
  • Drag cover-letter.pdf to the top, then cv.pdf, then portfolio.pdf.
  • Hit Merge.
  • Result: merged.pdf — 8 pages, one file, ready to email or upload to a job portal.

The final file opens in any standard PDF reader and prints exactly as expected. No extra blank pages, no reformatting.

How to merge PDFs in code

If you need to combine PDFs automatically — say, as part of a report pipeline — here are the two most common approaches.

Python (using PyPDF2)

# pip install pypdf2
from PyPDF2 import PdfMerger

merger = PdfMerger()
for filename in ['cover-letter.pdf', 'cv.pdf', 'portfolio.pdf']:
    merger.append(filename)

merger.write('merged.pdf')
merger.close()

This appends each file in list order and writes the result to merged.pdf. Requires Python 3 and the pypdf2 package.

JavaScript / Node.js (using pdf-lib)

// npm install pdf-lib fs
const { PDFDocument } = require('pdf-lib');
const fs = require('fs');

async function mergePDFs(files, output) {
  const merged = await PDFDocument.create();
  for (const file of files) {
    const bytes = fs.readFileSync(file);
    const doc = await PDFDocument.load(bytes);
    const pages = await merged.copyPages(doc, doc.getPageIndices());
    pages.forEach(page => merged.addPage(page));
  }
  fs.writeFileSync(output, await merged.save());
}

mergePDFs(['cover-letter.pdf', 'cv.pdf', 'portfolio.pdf'], 'merged.pdf');

pdf-lib is a well-maintained library that works in both Node.js and the browser. The pdf-lib documentation covers advanced options like inserting blank pages or setting metadata.

How it works under the hood

The tool uses the PDF specification (maintained by PDF Association / ISO 32000) to read each file's page tree and cross-reference table, then writes a new PDF containing all the pages in your chosen sequence.

Because this happens inside your browser with JavaScript, no data ever leaves your machine. Close the tab and the files are gone — nothing is cached on a server anywhere.

When to use this tool (and when not to)

SituationUse this tool?
Combining 2–20 standard PDFs for email or upload✅ Perfect fit
Merging scanned PDFs (image-based pages)✅ Works fine — pages are copied as-is
Joining hundreds of files in a nightly batch job⚠️ Use a script (Python/Node) for automation
Merging password-protected (encrypted) PDFs❌ Unlock the files first
Combining PDFs where you also need to extract or split specific page ranges➡️ Try a dedicated split or extract tool

For most everyday tasks — submitting application documents, combining invoices, packaging a report with appendices — this tool handles it instantly without installing anything.

Your merged PDF stays 100% private. Unlike most online PDF services, nothing is uploaded to a remote server. The entire process runs in your browser tab.

Ready to join your files? Drop them into the tool above and have a single, clean PDF in moments.

Frequently asked questions

Is my data uploaded to a server when I merge PDFs here?+
No. The merge happens entirely inside your browser using JavaScript. Your PDF files never leave your device and are never sent to any server. This makes it safe for sensitive documents like contracts or personal records.
Is this tool free? Do I need to create an account?+
It's completely free and requires no sign-up, no account, and no credit card. Just open the page, add your files, and merge.
How many PDFs can I merge at once?+
There's no hard cap on the number of files. In practice, browser memory is the limit — combining dozens of large PDFs in one go may slow things down. For bulk merging (hundreds of files), a Python or Node.js script is a better fit.
Can I change the page order before merging?+
Yes. After uploading, drag the file thumbnails into whatever order you want. The merged PDF will follow that sequence exactly.
What's the difference between merging and appending PDFs?+
They mean the same thing in practice: both describe placing the pages of one PDF after another into a single file. 'Combine PDF' and 'join PDF' are other common names for the same operation.
Can I merge password-protected or encrypted PDFs?+
Not directly. You'll need to remove the password protection from the PDF first, then upload the unlocked version to merge it.
Will merging reduce the quality of my PDF pages?+
No. Pages are copied as-is into the new document — images, fonts, and vector graphics are all preserved at their original quality. Nothing is re-rendered or compressed during a merge.
How do I merge PDFs on a Mac or Windows PC without installing software?+
Use this browser-based tool — it works on any operating system in Chrome, Firefox, Safari, or Edge. On a Mac you can also use the built-in Preview app: open one PDF, then drag another into its thumbnail sidebar and export.