📚 Free PDF Tool

Merge PDF Files Online — Free & Private

Combine multiple PDF files into one. Drag to reorder. No upload required — everything runs in your browser.

🔒 Files never leave your browser — 100% private
📚
Drop PDF files here
Add as many PDFs as you need — drag to reorder
📂 Choose PDFs

-
Pages
-
File size
let _files=[]; function ev(e){e.preventDefault();} function handleFiles(fs){ _files.push(...Array.from(fs).filter(f=>f.name.endsWith('.pdf'))); renderList(); } function renderList(){ const fl=document.getElementById('fl2'); fl.innerHTML=_files.map((f,i)=>`
${i+1}
${escH(f.name)}
${fmtSize(f.size)}
`).join(''); if(_files.length>1) fl.innerHTML+=`
${_files.length} files ready to merge
`; document.getElementById('opts2').style.display=_files.length>0?'flex':'none'; document.getElementById('act2').style.display=_files.length>1?'flex':'none'; } function rmFile(i){_files.splice(i,1);renderList();} function resetMerge(){_files=[];renderList();document.getElementById('res2').classList.remove('show');document.getElementById('prog2').style.display='none';} async function mergePDFs(){ if(_files.length<2)return; const btn=document.getElementById('mbtn');btn.disabled=true; document.getElementById('prog2').style.display='block'; const setP=(p,t)=>{document.getElementById('pf2').style.width=p+'%';document.getElementById('pl2').textContent=t;}; const merged=await PDFLib.PDFDocument.create(); let total=0; for(let i=0;i<_files.length;i++){ setP(Math.round(10+(i/_files.length)*80),`Merging ${i+1}/${_files.length}...`); const ab=await _files[i].arrayBuffer(); const doc=await PDFLib.PDFDocument.load(ab,{ignoreEncryption:true}); const pages=await merged.copyPages(doc,doc.getPageIndices()); pages.forEach(p=>merged.addPage(p)); total+=pages.length; } setP(95,'Saving...'); const out=await merged.save({useObjectStreams:true}); setP(100,'Done!'); document.getElementById('r2pg').textContent=total; document.getElementById('r2sz').textContent=fmtSize(out.byteLength); document.getElementById('res2').classList.add('show'); const name=document.getElementById('mname').value||'merged-document.pdf'; const blob=new Blob([out],{type:'application/pdf'}); const url=URL.createObjectURL(blob); document.getElementById('mdl').onclick=()=>{const a=document.createElement('a');a.href=url;a.download=name.endsWith('.pdf')?name:name+'.pdf';a.click();}; btn.disabled=false; setTimeout(()=>{document.getElementById('prog2').style.display='none';},800); }

How it works

1

Add your PDFs

Drop or select multiple PDF files. Reorder using the arrows.

2

Set filename

Give your merged PDF a name — optional.

3

Merge & Download

Click Merge PDFs and download your combined file instantly.

Why use this tool?

No upload needed — Files never leave your device. Processing is 100% local in your browser.

Unlimited files — Add as many PDFs as you need. No restrictions.

Reorder freely — Use the up/down arrows to arrange pages in any order before merging.

Fast — Even 50-page PDFs merge in seconds. No internet upload delays.

Frequently Asked Questions

There is no limit. You can merge as many PDFs as your browser can handle. Typically hundreds of files work without issues.
The tool attempts to open protected PDFs. If the PDF has an owner password (restriction), it will merge. If it requires a user password to open, you will need to remove the password first.
Text, images and page layout are fully preserved. Some bookmarks and interactive elements may not carry over depending on the original PDF format.
No server-side limits since everything runs locally in your browser. Very large files (500MB+) may be slow depending on your device's RAM.

More Free Tools