Stop Screenshotting PDFs: A Dev's Guide to Extracting High-Res Images

Published: (December 13, 2025 at 11:40 AM EST)
1 min read
Source: Dev.to

Source: Dev.to

The Bad Way

Open the PDF, zoom in, and take a screenshot.
Result: a pixelated, low‑quality PNG with the wrong background color.

The Right Way: Extract Images Directly from the PDF

Using Python (PyMuPDF)

Install the library

pip install pymupdf

Extraction script

import fitz  # PyMuPDF

def get_images(pdf_file):
    doc = fitz.open(pdf_file)
    print(f"Processing: {pdf_file}")

    for page_index in range(len(doc)):
        page = doc[page_index]
        image_list = page.get_images()

        for img_index, img in enumerate(image_list):
            xref = img[0]
            base_image = doc.extract_image(xref)
            image_bytes = base_image["image"]
            ext = base_image["ext"]

            # Save the image
            filename = f"page{page_index+1}_img{img_index}.{ext}"
            with open(filename, "wb") as f:
                f.write(image_bytes)
            print(f"Saved: {filename}")

get_images("design_mockup.pdf")

This script pulls the exact file embedded in the PDF, preserving the original quality (transparent PNG, high‑res JPEG, etc.).

The Browser Way (No Code)

A free online tool, PDFConvertLabs, performs the same extraction on a secure backend and provides a drag‑and‑drop interface. It also handles CMYK‑to‑RGB conversion automatically.

Extract Images from PDF Online (replace with the actual URL)

Back to Blog

Related posts

Read more »