Tools

🚀 Free Online PDF & Utility Tools – Fast, Simple & Reliable!

Transform the way you handle documents and daily tasks with our all-in-one online utility suite. Whether you need to merge, split, convert, or compress PDFs, turn images into PDFs, or create professional name & date photos, we’ve got you covered.

Our tools are completely free, easy to use, and require no downloads or installations. Just upload your files, click a button, and get instant results!

💡 Key Features:

  • 📄 PDF Merge & Split: Combine multiple PDFs or extract specific pages in seconds.
  • 🖼 Image & JPG to PDF: Turn your images into high-quality PDFs effortlessly.
  • 🔄 Rotate PDFs: Fix the orientation of your documents instantly.
  • 🖊 Photo Signature Joiner: Combine passport photos with signatures for official use.
  • 🖼 Name & Date on Photo: Create professional ID-style or personalized photos.
  • 🎂 Age Calculator: Quickly calculate age from any birthdate.
  • 🔤 Word Counter & Typing Test: Perfect for writers and students.
  • 💌 Marriage Bio Data Maker: Generate ready-to-download biodata in one click.
  • 📄 PDF → Word Converter: Extract text and save as editable Word documents.

All tools are fast, safe, and work directly in your browser. No software, no fuss, just results in seconds!

Try it now and experience the easiest way to manage your PDFs and utilities online!

🚀 Premium PDF & Utility Tools

📄 Merge PDF
✂️ Split PDF
🖼 Image→PDF
🔄 Rotate PDF
📄 PDF→Word
🖼 Photo Name
✍️ Photo+Sign
🎂 Age
🔤 Word Count
⌨️ Typing Test
💌 Bio Data
`; } if(t=="split"){ b.innerHTML=`

Split PDF

`; } if(t=="image"){ b.innerHTML=`

Image→PDF

`; } if(t=="rotate"){ b.innerHTML=`

Rotate PDF

`; } if(t=="pdfword"){ b.innerHTML=`

PDF→Word

`; } if(t=="photo"){ b.innerHTML=`

Name & Date Photo

`; } if(t=="sign"){ b.innerHTML=`

Photo + Signature

`; } if(t=="age"){ b.innerHTML=`

Age Calculator

`; } if(t=="word"){ b.innerHTML=`

Word Count

`; } if(t=="typing"){ b.innerHTML=`

Typing Test

`; } if(t=="bio"){ b.innerHTML=`

Bio Data

`; } } /* DOWNLOAD */ function dlFile(blob,name){ let url=URL.createObjectURL(blob); let a=document.createElement("a"); a.href=url;a.download=name; document.body.appendChild(a);a.click();a.remove(); return url; } function show(url,name){ document.getElementById("d").innerHTML= `⬇ Download File`; } /* PDF */ async function merge(){ const {PDFDocument}=PDFLib;let pdf=await PDFDocument.create(); for(let file of f.files){ let b=await file.arrayBuffer(); let d1=await PDFDocument.load(b); let p=await pdf.copyPages(d1,d1.getPageIndices()); p.forEach(x=>pdf.addPage(x)); } let blob=new Blob([await pdf.save()]); let url=dlFile(blob,"merged.pdf"); show(url,"merged.pdf"); } async function split(){ const {PDFDocument}=PDFLib; let b=await f.files[0].arrayBuffer(); let d1=await PDFDocument.load(b); let n=await PDFDocument.create(); let [p]=await n.copyPages(d1,[0]); n.addPage(p); let blob=new Blob([await n.save()]); let url=dlFile(blob,"split.pdf"); show(url,"split.pdf"); } async function img(){ const {PDFDocument}=PDFLib;let pdf=await PDFDocument.create(); for(let file of f.files){ let b=await file.arrayBuffer(); let img=file.type.includes("png")?await pdf.embedPng(b):await pdf.embedJpg(b); let page=pdf.addPage([img.width,img.height]); page.drawImage(img,{x:0,y:0,width:img.width,height:img.height}); } let blob=new Blob([await pdf.save()]); let url=dlFile(blob,"images.pdf"); show(url,"images.pdf"); } async function rotate(){ const {PDFDocument,degrees}=PDFLib; let b=await f.files[0].arrayBuffer(); let d1=await PDFDocument.load(b); d1.getPages().forEach(p=>p.setRotation(degrees(90))); let blob=new Blob([await d1.save()]); let url=dlFile(blob,"rotated.pdf"); show(url,"rotated.pdf"); } /* PDF → WORD */ async function pdfWord(){ const pdf=await pdfjsLib.getDocument({data:await f.files[0].arrayBuffer()}).promise; let text=""; for(let i=1;i<=pdf.numPages;i++){ let p=await pdf.getPage(i); let c=await p.getTextContent(); text+=c.items.map(x=>x.str).join(" ")+"\n\n"; } const doc=new docx.Document(); doc.addSection({children:[new docx.Paragraph(text)]}); const blob=await docx.Packer.toBlob(doc); let url=dlFile(blob,"converted.docx"); show(url,"converted.docx"); } /* PHOTO FULL WIDTH */ function photo(){ let img=new Image(); let ctx=c.getContext("2d"); img.onload=function(){ c.width=400;c.height=500; ctx.drawImage(img,0,0,400,400); ctx.fillStyle="#fff";ctx.fillRect(0,400,400,100); function fit(t,y){ let s=40; ctx.font="bold "+s+"px Arial"; while(ctx.measureText(t).width>380 && s>10){ s--; ctx.font="bold "+s+"px Arial"; } ctx.textAlign="center"; ctx.fillStyle="#000"; ctx.fillText(t,200,y); } fit(n.value.toUpperCase(),440); fit(dt.value,480); let url=c.toDataURL(); dl.href=url; dl.download="photo.png"; dl.style.display="block"; } img.src=URL.createObjectURL(p.files[0]); } /* SIGN */ function sign(){ let i1=new Image(),i2=new Image(); let ctx=c.getContext("2d"); i1.onload=function(){ i2.onload=function(){ c.width=400;c.height=500; ctx.drawImage(i1,0,0,400,400); ctx.drawImage(i2,0,400,400,100); let url=c.toDataURL(); dl.href=url; dl.download="joined.png"; dl.style.display="block"; } i2.src=URL.createObjectURL(p2.files[0]); } i1.src=URL.createObjectURL(p1.files[0]); } /* AGE (FIXED) */ function age(){ let dobInput=document.getElementById("age_dob").value; if(!dobInput){alert("Select DOB");return;} let dob=new Date(dobInput); let today=new Date(); let y=today.getFullYear()-dob.getFullYear(); let m=today.getMonth()-dob.getMonth(); let d=today.getDate()-dob.getDate(); if(d<0){m--;d+=30;} if(m<0){y--;m+=12;} document.getElementById("r").innerText= `Age: ${y} Years, ${m} Months, ${d} Days`; } /* WORD */ function word(){let txt=t.value.trim();r.innerText="Words: "+(txt?txt.split(/\s+/).length:0);} /* TYPING */ function typing(){let s=Date.now();prompt(txt.value);r.innerText="Time: "+((Date.now()-s)/1000)+"s";} /* BIO */ function bio(){ let content=`Name:${n.value}\nDOB:${dob.value}\nGender:${g.value}\n${e.value}`; let blob=new Blob([content]); let url=dlFile(blob,"biodata.txt"); dl.href=url;dl.style.display="block"; } return {open,merge,split,img,rotate,pdfWord,photo,sign,age,word,typing,bio}; })();