Render every page of a PDF as a PNG or JPEG image at a chosen resolution, bundled into a downloadable zip. Runs entirely in your browser using pdf.js and JSZip. Your PDF never leaves your device.
How it works
- Select a PDF.
- Pick output format (PNG or JPG) and resolution (36 – 600 DPI).
- Click Convert.
- Download the zip.
pdf.js renders each page to a canvas at your chosen DPI, then the tool reads the canvas bytes as PNG or JPEG and writes them to an in-memory zip file. Page files are named page-01.png (with zero-padding so alphabetical sort matches page order) so the zip expands cleanly in any order-preserving viewer.
Format choice
PNG — lossless, larger file sizes. Use when image fidelity matters (documents with fine text, diagrams, line art, colour-critical content).
JPG — lossy, smaller file sizes. Use for photo-heavy content or when file size matters more than perfect fidelity. Quality is fixed at 92% — visually indistinguishable from lossless for almost any realistic content.
Resolution guide
| DPI | Use case | File size |
|---|---|---|
| 72 | Quick preview, matches PDF native size | smallest |
| 100 | Web screenshot, slide deck image | small |
| 150 | Sharp screen display, retina viewing | moderate |
| 300 | Print-ready | large |
| 600 | Ultra-high-quality print | very large |
A 20-page A4 PDF at 150 DPI produces roughly 50 MB of PNG or 5 MB of JPG. At 300 DPI, roughly 200 MB PNG / 15 MB JPG. Sizes here use decimal MB (1 MB = 1,000,000 bytes), the same convention macOS and storage labels use; Windows shows the same files ~5% smaller because it uses binary “MB” (really MiB).
Example: extracting slides as images
You have a 40-slide PDF presentation but need to embed individual slides into a report. Select the PDF, pick PNG, 150 DPI, Convert. Unzip. 40 PNG files numbered page-01.png through page-40.png. Drag into your report.
Example: turning a scan into reference images
Scanned handwritten notes or whiteboard photos in a PDF. Pick JPG at 150 DPI, Convert. You get compressed images suitable for image search, sharing, or piping into an OCR service.
Example: creating thumbnails
A long PDF where you want thumbnail previews. Pick PNG at 72 DPI. Get small, fast-to-load images — perfect for a thumbnail grid in a document management system.
Why this is browser-only
PDFs often contain sensitive content. Sending them to a random online converter is unsafe. This tool uses pdf.js (Mozilla’s PDF renderer — the same library that renders PDFs in Firefox) running entirely in your browser. Combined with JSZip for packaging and no server component at all, the tool is compatible with air-gapped environments and strict egress controls.
pdf.js is lazily loaded on the first Convert click — about 1 MB of JS, cached thereafter. JSZip adds roughly 30 KB. Neither is in the initial page bundle, so the explainer page itself loads fast for casual readers.
What this tool does not do
It doesn’t extract selectable text. The output is images; the text layer is discarded. For text, use a text extractor.
It doesn’t OCR the output images. If your source PDF is a scan with no text layer, the output images will also have no text layer. For OCR, pipe the extracted images through the image OCR tool.
It doesn’t render encrypted PDFs. Decrypt first.
It doesn’t handle vector output formats (SVG, EPS). Only raster (PNG, JPG). Vector rendering from PDFs is a different and much more complex problem.
It doesn’t stream pages for very large PDFs. All pages render to memory before zipping. For 500+ page documents at high DPI you may hit browser memory limits. Process in batches or use a server-side tool.
It doesn’t let you select specific pages to render. Every page is rendered. For partial rendering, use the PDF splitter to extract the pages you want first, then run this tool on the smaller PDF. For the reverse direction (images → PDF), the image to PDF converter bundles them into a multi-page document.