PDF To JPG Converter

Convert PDF pages to images directly in your browser.

Configure inputs in pipeline.

Output will appear here.

For informational purposes only.

No data is stored or transmitted.

(function(){ const fileInput = document.querySelector('#pdf-file'); const scaleEl = document.querySelector('#scale'); const pageEl = document.querySelector('#page'); const preview = document.querySelector('#preview'); const download = document.querySelector('#download'); const errorEl = document.querySelector('#error'); function showError(msg){ if(errorEl){ errorEl.textContent=msg; errorEl.style.display=msg?'block':'none'; } } async function renderPage(file, page){ showError(''); const scaled = Number(scaleEl?.value || 2); const pageNum = Math.max(1, Number(pageEl?.value || 1)); if(!file){ showError('Choose a PDF first.'); return; } try { const pdfjsLib = window.pdfjsLib; if(!pdfjsLib){ showError('PDF renderer unavailable in this environment.'); return; } const data = await file.arrayBuffer(); const pdf = await pdfjsLib.getDocument({data}).promise; if(pageNum > pdf.numPages){ showError('Page number exceeds PDF length.'); return; } const page = await pdf.getPage(pageNum); const vp = page.getViewport({scale: scaled}); const canvas = document.createElement('canvas'); canvas.width = vp.width; canvas.height = vp.height; const ctx = canvas.getContext('2d'); await page.render({canvasContext: ctx, viewport: vp}).promise; const url = canvas.toDataURL('image/jpeg', 0.92); if(preview){ preview.src = url; preview.style.display='block'; } if(download){ download.href = url; download.textContent = `Download page ${pageNum}.jpg`; download.style.display='inline-block'; } } catch(e){ showError('Convert failed: ' + e.message); } } document.getElementById('run-btn')?.addEventListener('click', ()=> renderPage(fileInput?.files?.[0], pageEl?.value)); [pageEl, scaleEl].forEach(el=> el?.addEventListener('change', ()=> renderPage(fileInput?.files?.[0], pageEl?.value))); })();