Skip to main content

Free PDF Merger

Merge multiple PDF files into one. Drag to reorder pages.

Sejda's free plan allows 3 tasks an hour — here PDFs are merged on your device, with no account. · checked Sep 2026

Drop files here, or click to browse

PDF, JPG, PNG, WebP, HEIC, HEIF · processed on your device

or press Ctrl+V to paste from your clipboard

You can drop multiple files at once

Browse files

Your files never leave your device. All processing happens locally in your browser.

Common uses

  • Merge PDF InvoicesCombine multiple invoice PDFs into one file — organise billing records and simplify accounting workflows.
  • Merge PDF ReceiptsCombine scanned receipts and purchase records into one tidy PDF — great for expense reports and tax preparation.
  • Merge PDF ReportsCombine multiple report PDFs into one document — ideal for presentations, client deliverables, and internal reviews.
  • Merge Scanned PDF PagesCombine individually scanned pages into one complete PDF document — restore multi-page documents from separate scans.
  • Merge PDF ContractsCombine contract PDFs and their amendments, addenda, and exhibits into one complete agreement file.

How It Works

PDF merging here runs entirely in your browser using pdf-lib — a JavaScript library that reads, copies, and writes PDF page trees without any server involvement. Your files are never uploaded anywhere.

  1. 1
    pdf-lib reads each PDF
    Each file you add is read into an ArrayBuffer and parsed by pdf-lib's PDFDocument.load(). The library walks the PDF's internal cross-reference table to locate every page object, font, image resource, and annotation.
  2. 2
    Pages are copied into a new document
    pdf-lib's copyPages() deep-clones each page — including its embedded fonts and image resources — into a freshly created PDFDocument. Pages are copied in the order you arranged them in the list, and any per-file rotation you set is baked in via setRotation() before the page is added.
  3. 3
    pdfjs-dist renders cover thumbnails
    In parallel, pdfjs-dist renders the first page of each PDF onto an off-screen HTML Canvas element at 140 px wide. The result is exported as a JPEG data URL and shown as the file's thumbnail — giving you a visual confirmation of ordering before you merge.
  4. 4
    pdf-lib writes and saves the merged file
    Once you click Merge, pdf-lib serialises the combined document to a Uint8Array using its built-in PDF writer, wraps it in a Blob, and triggers a browser download. No data ever leaves your device.

All PDF files are processed locally in your browser using pdf-lib and pdfjs-dist — neither your files nor their contents are sent to any server.

Related Tools

Frequently Asked Questions