Rendering a page is rebuilding it, not extracting a picture from it
A PDF page doesn't contain a hidden image waiting to be pulled out — it contains vector drawing instructions, positioned text, and any embedded images, all composited together when a viewer displays the page. Converting to PNG means having pdf.js actually execute those instructions onto a canvas at a chosen pixel resolution, then encoding whatever pixels land on that canvas as a PNG file. It's a render, not an extraction — which is exactly why the scale you choose has such a direct effect on the result: you're deciding the resolution of the canvas being painted, not adjusting a quality knob on some pre-existing image.
This is also why it works identically well on scanned and text-based PDFs. Since pdf.js renders whatever the page actually contains — whether that's live text and vectors or one big embedded scan image — the output PNG faithfully mirrors what any PDF viewer would show you, regardless of how the original page was created.
Choosing a render scale
| Scale | Best for | Trade-off |
|---|---|---|
| 0.5×–1× | Thumbnails, quick previews | Smallest files, softest detail |
| 1.5× | Screen viewing (recommended default) | Good balance of sharpness and file size |
| 2×–3× | Print-quality extraction, zooming into fine detail | Larger files, more memory and time to render |
Converting your PDF to images
Drop your PDF onto the zone — the tool counts the pages.
Adjust the render scale (0.5×–3×): higher scale means sharper PNGs but larger files.
Click Convert to PNG & download ZIP — each page is rendered to a canvas and bundled.
Unzip the result to access the per-page PNGs.
Why PNG and not JPEG
PNG's lossless compression means the rendered pixels come through exactly as painted — no compression artifacts around text edges, no softening in fine lines or small fonts. That matters more here than it might for a photo: a PDF page rendered at high scale for print or archival use is often dense with sharp text and thin lines, exactly the content type where JPEG's lossy compression introduces visible blocking and ringing artifacts around edges. Choosing PNG trades some file size for guaranteed fidelity to what pdf.js actually rendered.
Why higher scales take longer and use more memory
Each step up in scale multiplies the total pixel count roughly by the square of the scale factor — 2× isn't twice the pixels, it's roughly four times, and 3× is roughly nine times. Every one of those pixels has to be computed by the renderer and held in memory before being encoded to PNG, across every page in the PDF. For a short document this is barely noticeable; for a hundred-page PDF at 3×, expect a real wait and meaningfully higher memory use during the conversion.
Common mistakes
Defaulting to the highest scale for a document that will only ever be viewed on screen — 1.5× is usually the better default, with 2–3× reserved for print or detailed zooming.
Converting a very large PDF at 3× and being surprised by a long wait — the cost scales roughly with the square of the scale factor, not linearly.
Expecting JPEG output — this tool exports PNG specifically for lossless quality; convert afterward if JPEG is genuinely required.
Assuming a scanned PDF won't convert properly — pdf.js renders scanned pages the same way as text-based ones, faithfully mirroring what a viewer shows.
Real use cases
Extracting print-quality page images from a PDF report for use in a separate design document.
Generating thumbnail previews of each page in a PDF for a document management interface.
Pulling scanned pages out of a PDF as individual PNGs for archival or further image editing.
Preparing PDF page content for a workflow that needs standalone images rather than a PDF viewer.
Frequently asked questions
Q: What scale should I pick?
A: 1.5× is a good default for screen viewing. Use 2×–3× for print-quality extraction, or 0.5×–1× for thumbnails — higher scales produce larger files.
Q: Does it render scanned PDFs?
A: Yes — pdf.js renders both text-based and image-based (scanned) pages. Each page becomes a PNG mirroring what you'd see in a viewer.
Q: Why does it take a moment?
A: Each page is rendered to a canvas at the chosen scale and encoded as PNG, all in your browser. Large PDFs at high scales take more time and memory since pixel count grows roughly with the square of the scale.
Q: Can I get JPEG instead of PNG?
A: This tool exports PNG for lossless quality. For JPEG, run the resulting PNGs through an image converter afterward.
Q: Are my PDFs uploaded?
A: No. Rendering uses pdf.js running locally in your browser — nothing is sent to a server.
Q: Why is my ZIP so much larger than the original PDF?
A: A PDF's vector text and paths are very compact to store, but once rendered to pixels at a real scale, especially 2× or 3×, the resulting PNGs — one per page, uncompressed pixel-for-pixel in terms of quality — are often collectively larger than the original compact PDF.
Convert your PDF now
Render your pages with the PDF to Images tool. Need only specific pages instead of all of them? Try Extract PDF Pages or Split PDF first. Going the other direction? Use Images to PDF, or pull the text content instead with Extract Text from PDF.