PDF CMYK / RGB Color Space Checker

Scan a PDF's vector and text fill/stroke colors for RGB before sending it to print. Everything runs in your browser — your file is never uploaded anywhere.

Drop a PDF file here, or click to browse

It stays on your device — nothing is uploaded.

Add a PDF and click Check Colors to see which pages use RGB, CMYK or other color spaces.

Embed PDF CMYK / RGB Color Space Checker

Paste this into your page's HTML. The calculator runs inside the frame, and a small link back to ToolsNode stays at the bottom.

Why RGB in a print PDF is worth checking

Most design software defaults to RGB, and it's easy for a stray text box, logo, or shape to stay in RGB even after the rest of a document has been carefully converted to CMYK for print. A commercial press or RIP will convert that RGB object to CMYK automatically at output time — using whatever conversion profile it happens to be configured with, not the one you'd have chosen — which is a common, quiet cause of colors shifting between what a designer approved on screen and what came off the press.

What this tool actually inspects

This tool reads every page's content stream using pdf.js's operator list — the same low-level instruction sequence a PDF viewer follows to draw the page — and tallies which color-setting operator painted each fill and stroke: DeviceRGB, DeviceCMYK, DeviceGray, or a named color space resource (which covers ICC profiles, spot/Separation colors and patterns, reported separately since none of those are simply "RGB" or "CMYK"). That reliably covers vector shapes and text, which is where a leftover RGB object almost always turns out to be.

What it doesn't check, and why

Embedded raster images are a genuine gap here, not a hidden one: pdf.js decodes every image into RGB internally so it can draw it to a canvas, and its public API doesn't expose an image's original PDF color space. This tool counts images per page so you know they're there, but doesn't claim to know whether a given image was embedded as DeviceRGB or DeviceCMYK — for a full image-level audit, use Acrobat Preflight or your RIP's own color check.

Vector and text colors only
This checks fill/stroke colors set directly in the page content — not the color space of embedded raster images.
No upload
Your PDF is parsed entirely in your browser using pdf.js — nothing is sent to a server.

Questions

Why does this tool flag RGB but not tell me it's wrong?

Because RGB in a PDF isn't inherently an error — a PDF meant only for on-screen viewing is often built entirely in RGB on purpose. It only becomes a real problem when that same file goes to an offset or digital press expecting CMYK (or a specific spot-color workflow), where an RGB object gets converted at the RIP using assumptions you don't control, often producing duller, less predictable color than a deliberately-built CMYK version. This tool tells you where RGB exists; whether it's a problem depends on where the file is headed.

Does this check the colors inside embedded images too?

No, and this is worth being upfront about: pdf.js (the engine this tool runs on) decodes every embedded image into RGB internally so it can render it to a canvas, and its public API doesn't expose the image's original color space. This tool reliably checks vector shapes and text — the fill and stroke colors set directly in the page's content — and reports how many images exist per page, but doesn't classify their original color mode. For a full image-level ICC/CMYK audit, use Acrobat Preflight or your RIP's own check.

What counts as "other" color space operations in the results?

Anything set through a named color space resource rather than a plain DeviceRGB/DeviceCMYK/DeviceGray operator — this covers ICC-based profiles, spot/Separation colors, Indexed color spaces, and pattern fills. These aren't necessarily a problem (spot colors are completely normal in commercial print), but they're also not simply "RGB" or "CMYK," so this tool reports them as their own category rather than guessing which bucket they belong in.

Is my file uploaded anywhere to run this check?

No. The PDF is parsed entirely in your browser using pdf.js's operator-list API — the same JavaScript library that renders PDFs inside Firefox — and nothing is ever sent to a server.