What this tool does
This converter renders each page of a PDF as a PNG or JPEG image, rendered in your browser at the resolution you choose. Drop a PDF and you get a grid of thumbnails; pick a format and a scale, then either download all pages at once or save individual ones. The PDF is parsed by pdf.js inside your tab, drawn to off-screen canvases, and only those canvases ever leave a download dialog. There is no upload.
When you'd use it
- Posting a PDF page on a forum or chat platform that won't accept PDF attachments inline.
- Generating thumbnails for a portfolio site without spinning up a server-side renderer.
- Pulling figures out of a paper so you can paste them into slides or another document.
- Creating an email-friendly preview of a PDF for recipients on slow connections.
- Producing input for an OCR pipeline that wants raster images, not vector PDF.
How it works
pdf.js loads the document and exposes a getPage(n) method per page. For each page we ask for a viewport at the chosen scale (1×, 1.5×, 2×, 2.5×, or 3×) and draw it into a fresh <canvas> whose width and height match the viewport in pixels. The canvas is then encoded with canvas.toBlob() (image/png or image/jpeg at quality 0.92 for JPEG) and either previewed as a thumbnail or saved as a download.
Changing the format is cheap because the canvas is already rendered — we just re-encode the same pixels into PNG or JPEG and refresh the thumbnails. Changing the scale is more expensive: a different scale needs a different canvas resolution, so the tool re-runs pdf.js's page render at the new viewport. The hard limit of 100 pages is a safety valve for the browser's main thread; beyond that, render time and memory usage grow uncomfortably for a tab.
The pdf.js worker is loaded as a same-origin asset (Vite emits it during build), so no third-party CDN is involved. Once loaded, no further network traffic happens — every page render and image encode is local.
Notes
PNG or JPEG? PNG is lossless, larger, and great for pages with text or sharp graphics. JPEG is smaller and well-suited to image-heavy pages (scans, photographs, maps), but it can introduce visible compression artefacts on text edges. The default is PNG; switch to JPEG when file size matters.
Why does scale 3× look the same on my screen? Your monitor's pixel density caps what you can see at preview time, but the output file is genuinely 3× the resolution. The thumbnail in the grid is downscaled by the browser; the image you download is full size.
Does encrypted PDF work? Standard open-password PDFs typically render through pdf.js. Content-encrypted or DRM PDFs may fail; the panel will show a load error and nothing renders.
Can I render a single specific page only? The grid shows every page; click the small download icon on a single thumbnail to save just that page. There is no separate "only render page X" toggle — at 1× scale, rendering a 50-page PDF is fast enough that the cost isn't meaningful.
Related tools
- PDF Splitter — get the pages out as a smaller PDF first
- Image Compressor — shrink the resulting PNG/JPEG
- Image Converter — convert PNG/JPEG to WebP after rendering