FreeToolio

PDF to PNG

Turn each page of a PDF into a PNG in this tab. Pick the resolution and the pages, then choose whether the page keeps a white paper background or only the pixels it actually paints. The rendering happens in your browser, so the file is never uploaded.

Drop a PDF here

or choose a file · one PDF at a time · or paste one with Ctrl + V

PDF in, PNG out · 36 to 600 DPI · white or transparent background · no upload · no account · no watermark

PDF to PNG: What the Page Paints and What It Leaves Empty

A PDF page is not a picture with a white background. It is a list of paint instructions on an empty canvas, and the canvas stays empty wherever the instructions never reach. Page 1 of a 15-page US Letter paper, rendered here at 150 DPI, came back with 1,906,918 of its 2,103,750 pixels at alpha 0 — 90.64% of the page had nothing painted on it at all.

That single number explains why this converter has a background switch and most do not. Choose white and the empty part becomes paper. Choose transparent and the empty part stays empty, in a format that can store emptiness. The visible page is the same either way; the file is not.

Bar chart of the pixels on page 1 of a US Letter PDF at 150 DPI: 1,906,918 never painted (90.64%), 164,815 partly covered (7.83%) and 32,017 fully covered (1.52%). PNG is 394,980 bytes with the alpha channel kept; JPG at quality 90 is 334,834 bytes with 0.60 levels of mean error and one pixel off by 120 levels.
Page 1 of a 15-page US Letter PDF, rendered at 150 DPI into 1,275 × 1,650 px. Nine tenths of that canvas is never painted, which is the area a transparent background keeps and a white one fills in. The PNG is 394,980 bytes and the JPG at quality 90 is 334,834 bytes; re-encoding the same canvas moved the average colour channel by 0.60 levels. A second run at the same settings returned the same SHA-256 for all 15 pages.

The page is empty until something paints it

A page object carries a MediaBox — 612 × 792 pt for this one, US Letter — and a content stream of drawing commands. Text, rules, images and vector shapes are painted onto coordinates inside that box. Anything the stream does not touch is left undefined, and a renderer has to decide what to put there before it can produce an image.

Most renderers decide white, because paper is the mental model. This page asks instead. White fills the canvas first, then draws. Transparent skips the fill and lets the alpha channel record what was never painted. Neither is more correct; they answer different questions about what a page is.

Where the 90.64% comes from

At 150 DPI the page is 1,275 × 1,650 px, which is 2,103,750 pixels. Rendered with an empty canvas, they split three ways:

What the pixel holds Pixels Share
Never painted (alpha 0) 1,906,918 90.64%
Partly covered (alpha 1–254) 164,815 7.83%
Fully covered (alpha 255) 32,017 1.52%

The middle row is the anti-aliasing: the soft edges that make small text legible. It is 7.83% of the page and it is neither ink nor emptiness, which is why a cutout tool that thresholds at alpha 0 keeps a grey fringe and this renderer does not.

The 1.52% is the actual ink. A dense page of body text still covers less than a fiftieth of its own area. That is what "the page has no background" means in practice: the paper is implied, not stored.

The switch changes the file, not the picture

Both renders were composited over white and compared pixel by pixel. Of 6,311,250 colour channels, 17,426 differed, every one by a single level — rounding in the compositing, not content. Drop the two PNGs on a white slide and they are the same image.

Drop them on a dark slide and they are not. The white version arrives as a white rectangle with text on it. The transparent version arrives as text with nothing around it. Both files weigh about the same: 394,980 bytes white, 375,429 transparent, because the empty area compresses to almost nothing either way.

Resolution sets the pixel count, not the detail

The page is 612 × 792 pt. Points are 1/72 inch, so the pixel grid follows the resolution directly:

Resolution Pixels per page Page 1 as PNG
72 DPI 612 × 792 140,272 B
150 DPI 1,275 × 1,650 394,980 B
300 DPI 2,550 × 3,300 993,666 B

From 150 to 300 DPI the pixel count quadruples while the bytes grow 2.52×, because flat areas cost almost nothing to store at any size. What does not grow is detail. Vector text and rules are resolution-independent, so 300 DPI samples their edges more finely. A photograph placed inside the PDF has a fixed pixel count of its own; rendering it at 300 DPI gives bigger pixels, not sharper ones.

PNG costs more bytes than the JPG, and buys exactness

Fifteen pages at 150 DPI, encoded twice from the same canvases: PNG 6,022,132 bytes, JPG at quality 90 4,681,506 bytes. The PNG is 1.29× the size. On a 7-page PDF built from photographs the gap widens: 2,660,710 bytes as PNG against 598,296 as JPG, 4.45×.

The reason sits in how each format spends its budget. A text page is mostly flat white with sharp edges — cheap for PNG's row filters, expensive for JPEG's block transform. A photograph is the reverse: fine grain everywhere, which JPEG discards and PNG must store.

So the format that wins on size depends entirely on what is on the page, and on a document with figures the answer changes from page to page.

PNG's advantage is not size. It is that nothing is approximated: what the renderer produced is what the file contains.

The same settings return the same bytes

The same 15 pages were rendered twice with identical settings. Page 1 hashed to 7c4bb799b97f5e90 both times, and all 15 pages matched their first-run hashes. A conversion you can repeat byte for byte is a conversion you can diff, archive and verify.

JPEG does not offer that. Re-encoding the same canvas at quality 90 changed the average channel by 0.60 levels on page 1, with one pixel off by 120 — a thin rule that landed on a block boundary. Save that file again and the error compounds. Nothing about the PNG pass adds error, because there is no second lossy step to add it.

What this page will not do

  • Keep the text. A PNG is pixels. The words stop being selectable, searchable or copyable, and the text layer is gone. If the words matter more than the picture, keep the PDF, or use OCR.
  • Return vectors. PNG is a grid. The original curves, fonts and clip paths are not recoverable from it, and no renderer hands them back.
  • Read text out of a scan. This page rasterizes; it does not recognize anything. A scanned PDF comes out as a picture of a scan.
  • Carry links or form fields. A PNG has no annotation layer. Anything interactive in the PDF becomes part of the picture or disappears.
  • Open an encrypted PDF. A password-protected file is refused before a page is read; there is no password box here.
  • Repair a damaged file. A PDF that cannot be parsed is reported, not rebuilt.
  • Take an unlimited document. One run covers up to 100 pages, and the panel refuses a range that works out to more than 400 megapixels, because every page is held in this tab's memory.
  • Convert more than one PDF at a time. One file goes in.

How to use this page

  1. Drop a PDF onto the panel, or paste one with Ctrl + V.
  2. Pick a resolution, and leave the page range empty to convert everything.
  3. The pages render as soon as a setting changes; each card shows the pixel size and byte size of its file.
  4. Download a single PNG, or take all of them as one ZIP.

What each control does

Resolution is a slider and a number box that stay in step, from 36 to 600 DPI. The hint under it shows the exact pixel size the current page will produce, so the choice is made in pixels rather than in a unit you have to convert.

Background chooses between white paper and transparency. Transparent only affects areas the page never painted; a PDF that paints its own white rectangle stays white.

Pages accepts 1-3, 7 or a single number. Empty means every page, and the range is re-checked on every keystroke before anything renders.

The result block reports the count, the total bytes, the largest page and the settings used, then lists one card per page. Only the first six cards are printed; the rest travel in the ZIP.

Why this page doesn't upload your file

The PDF renderer is a 320 KB script served from this site and run in the tab. Once the page has loaded, the document is read with File.arrayBuffer() and never leaves that memory.

That claim was tested rather than asserted. With every network request blocked in the browser, the page rendered the same 15 PNGs and every hash matched the online run. A probe request sent from the same page failed at the same moment, which proves the block was real and not a setting that silently did nothing.

The browser still reports a page view to this site's analytics. What it never receives is the file.

Questions that come up

Can I convert just one page of a PDF? Yes. Type the page number in Pages, or a range such as 2-4; only those pages render and only those files appear. Leaving the field empty converts all of them.

Why is the PNG bigger than the PDF I started with? Because the PDF stores instructions and the PNG stores results. That 15-page paper is 2,215,244 bytes; as PNGs at 150 DPI it is 6,022,132 bytes, and at 300 DPI 15,320,794. A PDF that is mostly text costs little to describe and a lot to paint.

What resolution should I use? 150 DPI is the default because it reads well on screen at page width. 300 DPI is the print standard and quadruples the pixels; 72 DPI is one pixel per point and good only for a quick preview.

How do I get a transparent background? Set Background to Transparent before the render. The areas the page never painted become alpha 0. If the result still shows white, the PDF itself paints a white rectangle behind its content, and no converter can remove that without editing the page.

Will the text still be selectable in the PNG? No. Rasterizing turns glyphs into pixels. Keep the original PDF for reading and search, and use the PNG where an image is required.

Does a 300 DPI PNG contain more detail than a 150 DPI one? Only where the page holds vector art. Text and lines are sampled more finely, so edges look smoother. An embedded photo already has a fixed pixel count and cannot gain detail it never had.