📸 Free PDF Tool

Convert PDF to JPG/PNG — Free Online Tool

Turn every PDF page into a high-quality image. Download individually or as a ZIP. No file upload, 100% private.

🔒 Files never leave your browser — 100% private
📸
Drop your PDF here
Each page will be saved as a separate image
📂 Choose PDF

-
Images
-
Total size
let _p2ifile=null; pdfjsLib.GlobalWorkerOptions.workerSrc='https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.11.174/pdf.worker.min.js'; function ev(e){e.preventDefault();} function handleP2I(f){if(!f||!f.name.endsWith('.pdf'))return;_p2ifile=f;document.getElementById('fl6').innerHTML=`
📄
${escH(f.name)}
${fmtSize(f.size)}
`;document.getElementById('opts6').style.display='flex';document.getElementById('act6').style.display='flex';} function resetP2I(){_p2ifile=null;document.getElementById('fl6').innerHTML='';document.getElementById('opts6').style.display='none';document.getElementById('act6').style.display='none';document.getElementById('res6').classList.remove('show');document.getElementById('prog6').style.display='none';} async function pdfToImgs(){ if(!_p2ifile)return; const btn=document.getElementById('p2ibtn');btn.disabled=true; document.getElementById('prog6').style.display='block'; const setP=(p,t)=>{document.getElementById('pf6').style.width=p+'%';document.getElementById('pl6').textContent=t;}; const scale=parseFloat(document.getElementById('p2idpi').value); const fmt=document.getElementById('p2ifmt').value; const mime='image/'+fmt; const ab=await _p2ifile.arrayBuffer(); setP(5,'Loading PDF...'); const pdf=await pdfjsLib.getDocument({data:ab}).promise; const results=[]; const base=_p2ifile.name.replace(/\.pdf$/i,''); let totalSz=0; for(let i=1;i<=pdf.numPages;i++){ setP(Math.round(5+(i/pdf.numPages)*88),`Rendering page ${i}/${pdf.numPages}...`); const pg=await pdf.getPage(i); const vp=pg.getViewport({scale}); const c=document.createElement('canvas');c.width=Math.round(vp.width);c.height=Math.round(vp.height); const ctx=c.getContext('2d'); if(fmt==='jpeg'){ctx.fillStyle='#fff';ctx.fillRect(0,0,c.width,c.height);} await pg.render({canvasContext:ctx,viewport:vp}).promise; const dataUrl=c.toDataURL(mime,.92); const b64=dataUrl.split(',')[1]; const sz=Math.round(b64.length*.75);totalSz+=sz; results.push({dataUrl,b64,fname:`${base}_page${String(i).padStart(3,'0')}.${fmt}`,pg:i}); } setP(100,'Done!'); document.getElementById('r6ct').textContent=results.length; document.getElementById('r6sz').textContent=fmtSize(totalSz); const grid=document.getElementById('p2igrid'); grid.innerHTML=results.slice(0,8).map((r,i)=>`
p.${r.pg}
`).join(''); if(results.length>8)grid.innerHTML+=`
+${results.length-8}
more
`; window._p2ires=results; document.getElementById('p2izip').onclick=async()=>{ const zb=document.getElementById('p2izip');zb.disabled=true;zb.textContent='⏳ Creating ZIP...'; const zip=new JSZip();const folder=zip.folder(base); results.forEach(r=>folder.file(r.fname,r.b64,{base64:true})); const blob=await zip.generateAsync({type:'blob',compression:'DEFLATE',compressionOptions:{level:6}}); const url=URL.createObjectURL(blob);const a=document.createElement('a');a.href=url;a.download=base+'_images.zip';a.click(); setTimeout(()=>URL.revokeObjectURL(url),5000);zb.disabled=false;zb.textContent='⬇️ Download All as ZIP'; }; document.getElementById('res6').classList.add('show'); btn.disabled=false;setTimeout(()=>{document.getElementById('prog6').style.display='none';},800); } function dlP2I(i){const r=window._p2ires[i];const a=document.createElement('a');a.href=r.dataUrl;a.download=r.fname;a.click();}

How it works

1

Drop your PDF

Select the PDF you want to convert to images.

2

Choose format & quality

Pick JPG for smaller files or PNG for lossless quality. Set DPI.

3

Download

Click each image or download all pages as a ZIP file.

Why use this tool?

High resolution — Choose up to 288 DPI for print-quality image output.

ZIP download — Download all pages in one click as a neatly organised ZIP file.

Click any page — Preview thumbnails for each page and download individually.

No upload — Your PDF is never sent to any server. Conversion is local and instant.

Frequently Asked Questions

150 DPI is good for screen viewing and sharing. 216 DPI is suitable for printing. 288 DPI gives the sharpest output for archiving or printing at large sizes.
JPG output is smaller in file size. PNG output is lossless — perfect for documents with text and sharp edges. For photos in PDFs, JPG is recommended.
Currently the tool converts all pages. To extract specific pages first, use the Split PDF or Extract Pages tools, then convert.
No. Any PDF — 1 page or 1000 pages — is supported since processing happens locally in your browser.

More Free Tools