If you’ve ever opened a scanned PDF on your Mac only to find that it displays completely blank pages or missing images, you’re not alone. Many users encounter this frustrating issue when using macOS’s built-in PDF viewing tools powered by PDFKit. Whether you’re browsing scanned documents, signed contracts, or image-based eBooks, the problem can render these essential files unusable. This article dives into what causes this behavior, why PDFKit struggles with some PDFs, and — most importantly — how to fix or work around it effectively.
TLDR:
If your macOS Preview or other PDFKit-based app won’t show images or pages in scanned PDFs, the problem lies in how PDFKit renders certain compressed image formats, especially JBIG2 and JPEG2000. Try alternative viewing tools like Adobe Acrobat or PDF Expert, or reprocess the PDF using Ghostscript or command-line tools. Updating macOS or using Quartz filters can also help bypass PDFKit limitations.
Understanding the Problem: Why Are Images Missing in PDFKit?
PDFKit is Apple’s framework used by apps like Preview, Safari, and many third-party tools to render and interact with PDF files. While it generally works well, it has known limitations that show up when it comes face-to-face with certain types of PDF content.
The most common cause for blank or missing images in PDFs rendered by PDFKit is its incomplete or outdated support for specific image compression methods used in scanned PDF files. Most notably, PDFKit struggles with:
- JBIG2: A monochrome image compression format optimized for scanned documents.
- JPEG2000: A more modern image format used in high-quality scans or digital archives.
- Custom or malformed image streams: That may still display perfectly in Adobe Acrobat or Chrome.
These issues are compounded by inconsistencies across macOS versions. For example, PDFs that rendered fine in macOS Catalina may suddenly break when opened on Monterey or Ventura.
How to Confirm You’re Dealing with This Issue
Before attempting fixes, confirm that you’re actually facing a PDFKit image rendering issue. Here’s how:
- Open the PDF in Apple Preview or Safari.
- If the pages appear blank, try opening the same file in Adobe Acrobat Reader.
- If Acrobat displays the content correctly, you’re likely experiencing a PDFKit-related rendering failure.
Alternatively, you can inspect the images using a tool like pdfinfo or pdfimages (both part of the Poppler library) to view the internal structure of the PDF and see what formats are being used underneath.
Workaround #1: Use Alternative PDF Viewers
This is the quickest and easiest solution. Simply bypass PDFKit altogether by using apps that rely on their own rendering engines. Here are a few options:
- Adobe Acrobat Reader: The de facto standard for viewing PDFs. It handles virtually all image formats.
- PDF Expert by Readdle: A well-designed and powerful macOS PDF reader.
- Skim: An open-source macOS PDF viewer for researchers and PDF-heavy users.
- Google Chrome: Surprisingly good at loading scanned PDFs that Preview fails to render.
If you’re frequently dealing with image-heavy PDF files, especially scanned documents, it’s worth keeping one of these viewers installed for occasional use.
Workaround #2: Convert the PDF to a Compatible Format
If you want your PDF to work within Preview or other native Apple apps, you can preprocess the file to eliminate unsupported image encodings. This is easily done using tools like Ghostscript.
Here’s a command-line example to convert an incompatible file into a “clean” PDF:
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
This process:
- Flattens image encoding
- Strips out unsupported compression formats
- Optimizes the file so it renders correctly in PDFKit
After running this, try reopening output.pdf in Preview — in most cases, the images will now appear normally.
Note: You’ll need to install Ghostscript via Homebrew (brew install ghostscript) if you don’t already have it.
Alternative Option: Reprint the PDF Using Quartz Filters
macOS includes Quartz filters that can be used to effectively reprocess and standardize a PDF. Here’s how to do this using Preview:
- Open the problematic PDF in Preview.
- Choose File > Export.
- Select “PDF” as Format and under “Quartz Filter,” choose “Reduce File Size” or “Create Generic PDF.”
- Click Save.
This action often standardizes image streams into a simpler format that PDFKit can handle.
Keep in mind that heavy compression may affect image quality — so choose the appropriate filter based on your needs.
Cause and Fix: macOS Version-Specific Bugs
Apple continuously updates PDFKit but not always to users’ satisfaction. Some macOS versions introduce regressions where previously compatible files become unreadable. If your issue began after an upgrade, you may be dealing with a temporary bug introduced in that release.
Things to try:
- Search or report the bug at Apple Feedback: feedbackassistant.apple.com
- Keep your system updated — patches sometimes fix rendering issues silently
- If you’re brave and capable, consider downgrading if a specific version is crucial for your workflow
A Bit More Technical: Diving Into PDF Internals
If you’re comfortable exploring PDF internals, use tools like pdfimages (Poppler) to identify which image encodings are present:
pdfimages -list yourfile.pdf
This outputs image format info, resolution, and encoding types. If you see entries with JBIG2 or JPEG2000, you already know why PDFKit is choking on it.
Advanced Option: Automate Fixing with a Custom Script
If you frequently receive incompatible PDFs, consider writing a shell script that runs Ghostscript or qpdf on all incoming files. You could even create a Folder Action using Automator to watch a “Downloads” folder and auto-convert feature-broken PDFs into PDFKit-friendly versions.
Here’s a simple sample bash script to automate the Ghostscript fix:
#!/bin/bash
input="$1"
output="${input%.*}_fixed.pdf"
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dQUIET -dBATCH -sOutputFile="$output" "$input"
Run it like:
bash fixpdf.sh myscan.pdf
Voila — fixed and readable in Preview!
Conclusion
While PDFs may be considered a universal format, not all viewers are built equally — and macOS’s PDFKit sometimes falls short, especially when handling non-standard compression and scan-heavy files. Fortunately, alternatives and workarounds abound. Whether you upgrade your viewer, preprocess the file, or contribute to Apple’s Feedback channels, the tools exist to reclaim your PDFs and make them usable across your entire workflow.
Next time those pages look blank, don’t panic — you now have the knowledge to fix it.
Happy PDFing!

