Extractor · No upload
Save scanned PDF pages as PNG
Drop a scanned PDF to get each page as a PNG image at the resolution the file stores. A page that is one scanned image is saved from that image, and every other page is listed with the reason it was skipped.
Refused by name: protected files (this page does not open protected files), and JBIG2, CCITT fax and JPEG 2000 images. Only a page that is one full-page image is saved: an image stored with PNG row filters is copied out as stored, others are decoded, and the row says which. A page with text, drawings or annotations is named on its row and is not rendered. A rights notice in the file goes into each image. Takes .pdf.
How this converter works
Your browser reads the PDF with its File API, and the same first-party reader the PDF merger on this site uses walks it in memory and checks every object for an encryption dictionary before a page is read. Each page's drawing instructions are then read without being drawn. A page qualifies when the only thing it shows is one image covering the page to within half a percent: an invisible text layer from a scanner's text recognition paints nothing and is left out, and anything drawn under an opaque image is hidden by it. An image the page shows stretched is saved at its own proportions, and the row says by how much. An image stored with PNG row filters (Flate with a predictor of 10 or more) is copied out byte for byte as the PNG's image data, and any other image the PDF stores without loss is re-compressed with every pixel's colour kept. A stored JPEG's pixels are decoded and written as PNG: its first EXIF block goes into the PNG with its orientation tags set to upright, and a later EXIF block, an EXIF block this page cannot set upright, an XMP block or an IPTC block it carries is left out and named on the row. Its own colour profile gives way to the one the PDF declares, and the row says when that leaves it out or puts a different one in its place. The colour profile the PDF declares and the file's rights notice (its dc:rights, xmpRights:UsageTerms and xmpRights:WebStatement fields) go into each PNG.
To watch the network yourself, open the Network panel in a desktop browser's developer tools and convert a file. On a first visit, you may see the site's pages and code being cached for offline use; those requests do not carry your PDF. The conversion itself runs in this tab and needs no extra library. This route is first-party throughout and works offline from the first page load. Other ways to check, and what each one covers, are on the methodology page.
A page with anything visible besides its one image is skipped with the reason on its row: text, drawings, annotations, a second image, an image clipped, cropped, drawn at an angle or covering part of the page, an image on a layer a viewer can hide, or transparency. Images in CMYK, Lab or spot colours and 12-bit JPEGs are skipped the same way. A page that has to be decoded (a stored JPEG, a turned page, an image with a transparency mask, which is kept, or RGB stored at fewer than 8 bits a channel) is limited to 40 megapixels and comes out at 8 bits a channel, and any image over 128 MB uncompressed is skipped. Files over 128 MB or 20,000 pages are refused, as is a file whose XMP metadata cannot be read (it may hold a rights notice), and attachments inside the PDF are not opened.