How it works
pdf.js reads each page’s drawing instructions and finds every “paint image” command. The referenced image is decoded at its stored pixel size and saved as PNG (lossless) or JPG. Duplicate images (a logo repeated on every page) are saved once per page they first appear on.
What you might not get
- Vector graphics — charts, icons and logos drawn with paths aren’t images; use PDF to PNG to capture them.
- Crops and masks — if the page shows only part of a photo, you get the whole stored photo.
- Original file bytes — images are decoded then re-saved, so an embedded JPEG comes out as a new PNG/JPG with the same pixels, not the byte-identical original.
- Inline tiny images and stencil masks are skipped.
Scanned PDFs
A scanned document is usually one big image per page. Extracting gives you exactly the scanner’s pixels, often better than rendering, because no resampling happens.
Questions
Is my PDF uploaded?
No. The scan happens in your browser tab with pdf.js.
Why were no images found?
The PDF’s visuals are probably vector shapes or text. Render the pages instead with PDF to Image.
Why are the extracted images upside down or oddly coloured?
Some PDFs store images flipped and flip them back when drawing, or use CMYK/ICC colour that pdf.js converts to RGB. The page itself looks right, the raw image may not. Rendering the page avoids this.
Can I extract images from a password-protected PDF?
Yes, if you know the password. Type it when prompted; it stays on your device.