Processed in your browser — never uploaded to any server

Merge PDF files into one document

Drop two or more PDFs, drag to set the order, and download a single combined file. Lossless merge — original page quality preserved.

Drop PDF files here to combine

or click to browse · Up to 30 files · Drag rows to reorder

Security: browser-only processing

VeloTools Merge PDF never sends document bytes to a server. After you pick files, the browser reads them via the File API into an ArrayBuffer; pdf-lib then copies page trees (/Pages, /Page) into a new document in tab memory. The network stack is not involved: no fetch, WebSocket, or hidden XHR carries PDF body data.

This is an architectural guarantee, not a privacy policy claim. With Wi-Fi off after the page loads, merge still works — proof that computation is local. For NDAs, medical, and financial PDFs, no third party can access file content.

How to merge PDFs in 3 steps

  1. Drop two or more PDFs into the upload zone, or pick up to 30 files via the file dialog.
  2. Drag rows to reorder: list order equals page order in the final document.
  3. Click Merge PDFs, then Download merged PDF — saved locally with no intermediate server.

Technical specifications

Max files per operation30 PDFs
Max file sizeNo hard cap — limited by device RAM (typically 100–500 MB total)
Supported PDF versionsPDF 1.4 – 2.0 (Flate/DCT stream objects)
Processing modeLossless copyPages — no JPEG rasterization
RAM usage~1.5–3x total source size during the operation
Network0 bytes of PDF content leave the browser
Encrypted PDFsRequire unlock first

What happens when you merge: images, ICC, and fonts

Merge in VeloTools is not pasting images together — it is importing the PDF object graph. Each source page is a node linking to /Resources: /XObject (raster and vector images), /Font (embedded subsets), /ColorSpace, and optional /Metadata.

Images and color profiles. With lossless page copy, JPEG/JPX/CCITT streams inside the PDF are not decoded or re-encoded. A photo with an ICC profile (sRGB, ISO Coated v2, etc.) keeps that profile on the same XObject. Merge does not unify color spaces: document A (sRGB) plus document B (CMYK) yields a combined PDF with two independent color contexts — normal concatenation behavior, not quality loss.

Fonts and subset merge. Each source PDF embeds a subset of glyphs used on its pages. pdf-lib copies each file's font objects into the output catalog. If Arial appears as separate subsets in two files, the merged PDF contains two font objects, not one merged subset. File size is roughly the sum of sources plus xref/trailer overhead; automatic font deduplication is not performed — a deliberate trade-off for exact page fidelity.

Quality vs compress. Merge does not shrink or degrade images. For a smaller file after merging, use Compress PDF (rasterize + JPEG) — a separate lossy operation.

Bookmarks and metadata. /Outlines (bookmarks) from multiple files are not merged automatically: the output keeps page structure without a combined table of contents. /Info metadata is rewritten with a minimal set when building the new file.

Frequently asked questions

Does merging PDFs reduce image quality?
No. Pages are copied without re-encoding: image bitstreams, ICC profiles, and vector graphics stay intact. Merge is not equivalent to PDF to JPEG to PDF export.
What happens to fonts from different PDFs?
Each file keeps its embedded font subsets. The output catalog unions all font objects; duplicate glyphs from the same family are not merged automatically, so size may slightly exceed the sum of sources.
Can I merge without uploading to a server?
Yes. The pipeline is File API, pdf-lib in tab memory, then Blob download. Disconnect the network after load and merge still works.
How many files can I merge at once?
Up to 30 PDFs. Practical limit is device RAM; 8 GB systems typically handle hundreds of pages total without issue.