PDF

PDF Images Missing or Display as Placeholders: How to Fix It

When a PDF opens with images replaced by blank rectangles, gray boxes, or broken-image placeholders, the problem is usually one of three things: the image format isn’t supported by your reader, the image stream is damaged, or the reader has hit a resource limit. Most cases resolve by switching readers or running a single diagnostic.

Quick fix

Open the file in a different reader. The image decoders in Acrobat, Chrome, Firefox, and Safari are independent implementations — a file that fails in one frequently works in another.

  1. Right-click the PDF and choose “Open with…” → your browser of choice.
  2. If the browser also fails, try Apple Preview (macOS), Sumatra PDF (Windows), or the latest Adobe Acrobat Reader.
  3. If images appear in any reader, save a fresh copy from there. The browser’s “Print to PDF” option produces an image-baked output.

Updating Acrobat alone resolves a meaningful share of image problems — older versions of Acrobat have known issues rendering JBIG2 and JPEG 2000 images, both of which are valid PDF image formats but uncommon enough that bug fixes lag.

If that didn’t work

Confirm whether the images are extractable from the file structure. If they extract cleanly, the problem is reader-side. If extraction also fails, the image streams are damaged.

pdfimages -all input.pdf out

pdfimages is part of poppler-utils — install via brew install poppler on macOS, apt install poppler-utils on Debian or Ubuntu, or use poppler binaries on Windows. The -all flag preserves the original image format where possible, extracting JPEGs as .jpg, JPEG 2000 as .jp2, and so on, rather than converting everything to PPM.

The command writes one file per embedded image to the current directory, named out-000.jpg, out-001.png, and so on. Open them in any image viewer:

  • If the extracted images look correct, the file is fine and your reader is the problem. Try a different reader, update your current reader, or check reader-specific preferences.
  • If the extracted images are blank, garbled, or fail to extract, the image streams in the PDF are damaged.

In Acrobat, check Edit → Preferences → Page Display for the “Show large images” option. Older Acrobat versions disabled this by default for performance, displaying placeholder rectangles for images above a size threshold. The setting still exists in current versions and occasionally gets toggled off.

Advanced recovery

If image streams are damaged and you need the file regardless, re-render through Ghostscript:

gs -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -o output.pdf input.pdf

/prepress settings preserve image quality at the cost of file size. Other options: /printer for moderate compression, /ebook for screen-quality compression, /screen for aggressive compression. Use /prepress when image fidelity matters; use lower settings only when file size is the constraint.

What you lose: Ghostscript re-renders the entire PDF, which means form fields, annotations, JavaScript actions, digital signatures, and tagged accessibility structure are typically discarded. If the file is purely visual content (a scanned document, a flyer, a presentation export), the loss is minimal. If the file is an interactive form or a tagged accessible document, you’re degrading it significantly.

For a single problematic image rather than a file-wide problem, the practical option is often to identify the page, extract the surrounding content, and rebuild the page with a replacement image from the original source. PDF editors (Acrobat, PDF-XChange Editor, Foxit) support image replacement page by page.

Why this happens

PDFs store images as XObject streams — separate objects within the file that the page content references when an image needs to be drawn. Each image stream specifies its dimensions, color space, bits per channel, and a compression filter that tells the reader how to decompress the image data. The PDF specification supports several image formats and compression schemes: JPEG (DCTDecode filter), JPEG 2000 (JPXDecode), JBIG2 (JBIG2Decode), CCITT Group 3 and 4 fax encoding (CCITTFaxDecode), and lossless compression with FlateDecode or LZWDecode.

Reader support for these formats varies. JPEG and FlateDecode are universally supported. JPEG 2000 support has been spotty across reader implementations and versions — Acrobat 6 and later officially support it, but rendering bugs persist in specific versions, particularly around color management. JBIG2 is even less consistently supported; it’s mainly used for scanned black-and-white documents and has had reader-specific issues for years.

When the image data itself is damaged — the JPEG stream is truncated, the JPEG 2000 codestream has invalid markers, the FlateDecode compressed data fails to decompress — the reader’s decoder fails for that specific image. Most readers display a placeholder rectangle and continue rendering the rest of the page. Some readers fail more loudly, refusing to display the page at all.

Browser PDF viewers and Acrobat use entirely different rendering pipelines. Chrome’s PDFium derives from Foxit’s PDF engine; Firefox’s PDF.js is JavaScript-based with browser-native canvas rendering; Acrobat uses Adobe’s proprietary engine. Each has its own image decoding code paths. A file that breaks one engine’s decoder often passes another’s, which is why “try a different reader” is a high-value first step.

Resource limits are a less obvious cause. Mobile readers, in particular, have memory ceilings — a PDF with very high-resolution images can exceed the reader’s allocated memory and trigger placeholder rendering for anything above a threshold. Desktop readers handle this better but aren’t immune; very large images on memory-constrained systems sometimes display as placeholders.

Preventing this in future

When generating PDFs from design or office tools, prefer the standard image formats: JPEG for photographs, PNG converted to FlateDecode for graphics with transparency or text. Avoid JPEG 2000 unless you specifically need its capabilities (very high compression with a lossless option, alpha channel support); the compatibility cost rarely justifies the benefits. Avoid JBIG2 in PDFs you intend to distribute widely — it’s optimized for scanned monochrome documents and many readers handle it poorly.

If you’re working with scanned documents, the scanning software’s PDF output settings often default to JBIG2 or other unusual encodings to minimize file size. Check the settings and prefer JPEG or PDF/A output for compatibility.

For PDFs you generate programmatically using libraries like ReportLab, iText, or PDFKit, test the output in multiple readers before relying on it. A file that renders correctly in one library’s preview tool can fail in production readers due to image encoding choices the library makes by default.

If text in the same PDF is also displaying incorrectly, the problem may be broader content stream damage rather than image-specific corruption — see PDF fonts missing or display incorrectly. For PDFs that display nothing at all, see PDFs that open blank or black. The PDF repair complete guide covers how PDFs are structured, including the relationship between the cross-reference table and content streams that determines what kind of repair will work.

Last verified: April 2026