The Grayscale PDF Converter produces a raster PDF, which means selectable text, clickable links, form fields, annotations, and vector paths are not preserved in the output. Every page is first rendered by the browser's PDF viewer at a fixed 1.5x scale, then each visible pixel is converted to gray using the standard luminance formula 0.2126R + 0.7152G + 0.0722B, and finally the gray version is written back as a PNG image inside a brand-new PDF. Because the original text layer, link annotations, and vector instructions are replaced with a flat picture, you cannot highlight, copy, search, or click through the resulting file. Page dimensions stay the same, but the document becomes a visual snapshot rather than an interactive one. This is the central tradeoff of the tool, and it is the direct answer to the question most people ask before converting: the output is no longer a real PDF in the interactive sense, it is a printable grayscale copy of one.

What the Grayscale Converter Actually Does to Your Pages
The Grayscale PDF Converter reads one local PDF, renders each page on a hidden HTML canvas, reads back every pixel, applies an arithmetic grayscale transform, encodes the result as a PNG, and assembles those PNGs into a new PDF using pdf-lib. The original text layer, link annotations, form fields, vector paths, layers, metadata, accessibility tags, and compression are not carried over because the tool never touches them; it only handles the pixels the browser draws.
This approach gives the tool two useful properties. First, it does not need to parse every PDF color operator, which means it works on a wide range of color-managed and mixed-content documents without depending on a particular PDF feature set. Second, the math is explicit and testable, so the same input pixels always produce the same gray pixels. The tool deliberately avoids the CSS canvas filter property because that property is not a dependable default in Safari, and a tool that quietly changes appearance between browsers would defeat the purpose of a quick visual conversion.
The arithmetic itself is the Rec. 709 luminance coefficient set: 0.2126 for red, 0.7152 for green, and 0.0722 for blue. For a fully saturated red pixel with values (255, 0, 0), the calculation is 0.2126 × 255 + 0.7152 × 0 + 0.0722 × 0 = 54.213, which rounds to 54. That single gray value is then written into the red, green, and blue channels of the output pixel. The same formula gives 182 for pure green and 18 for pure blue, which is why a green leaf looks lighter than a blue sky after conversion even when both started at full brightness.
Convert a PDF to Grayscale in Three Steps
- Pick one local PDF up to 25 MB. The file is read from your device, so nothing is sent to a server. Password-protected, signed, or malformed PDFs may fail because the tool does not bypass passwords or signatures.
- Select Convert to grayscale and wait. Each page is preflighted against the size and pixel budgets, rendered on a canvas, transformed pixel by pixel, encoded as a PNG, and stitched into a new PDF. Progress shows in the browser while the work runs locally.
- Review the raster PDF and download it. Open the result to confirm the visual monochrome copy looks right before sharing or printing. Starting another conversion cancels the previous job and releases its canvases, worker tasks, and temporary download URLs.
Why Selectable Text and Links Do Not Survive
A normal PDF is a mix of instructions and embedded resources. Text usually lives in a separate text layer with font references and character positions. Links live as annotation objects with destination references. Form fields, signatures, accessibility tags, and vector drawings are all distinct objects inside the file. The Grayscale PDF Converter does not read or rewrite any of those objects; it only looks at the picture the browser produces when it draws the page.
When the output PDF is written, each page contains exactly one image: the grayscale PNG. That image has no text layer, no annotation array, no form widgets, and no vector data. Highlighting, copying, searching, and clicking through the document all depend on those missing objects, so they stop working. Page dimensions, page count, and visual appearance carry over, but the interactive and structural properties do not.
What the Output Keeps and What It Drops
| Property | Preserved in output |
|---|---|
| Page dimensions in points | Yes, the new page is the same size as the original |
| Page count | Yes, the new PDF has the same number of pages |
| Visual appearance | Yes, at a fixed 1.5x render scale before being placed back on the original-size page |
| Selectable text | No, the text layer is replaced by a PNG |
| Clickable links | No, link annotations are dropped |
| Form fields and widgets | No, interactive form objects are dropped |
| Annotations and comments | No, the annotation array is not carried over |
| Vector paths and drawings | No, vectors are flattened into the raster image |
| Layers and optional content | No, layered content collapses into one image |
| Original image compression | No, the original JPG or JPEG 2000 streams are replaced by a PNG |
| Accessibility tags | No, the logical structure tree is not rebuilt |
| Metadata (title, author, XMP) | No, the new PDF starts with default metadata |
File, Page, and Pixel Limits the Converter Enforces
| Limit | Value |
|---|---|
| Source file size | Up to 25 MB |
| Page count per job | Up to 40 pages |
| Rendered pixels per side | Up to 12,000 on either side of one rendered page |
| Megapixels per page | Up to 40 megapixels per page |
| Total megapixels per document | Up to 100 megapixels across all pages |
| Password handling | Does not bypass passwords or signatures |
| Upload behavior | None, all work runs in the browser tab |
Every page is preflighted at the 1.5x render scale before a canvas is allocated for it, which is what keeps a single tab from trying to hold an unbounded image buffer. If your document pushes past any of these limits, the conversion stops before it can exhaust browser memory.
Grayscale PDF vs. Searchable PDF: Side by Side
| Goal | Better choice |
|---|---|
| Quick visual monochrome copy for printing | Grayscale PDF Converter |
| Upload form that only accepts grayscale files | Grayscale PDF Converter |
| Print preview of a color document in black and white | Grayscale PDF Converter |
| Searchable, copyable, accessible PDF output | A PDF editor that keeps the text layer |
| PDF/A-compliant archive | A professional PDF tool with archival profiles |
| Signed or legally certified document | A tool that validates and preserves signatures |
| Controlled compression or print color management | A professional PDF editor |
When Grayscale Is the Right Call
The tool is a good fit when a flattened visual copy is exactly what you need. Common cases include a quick monochrome version for a printer that handles only black toner, a reference document you only plan to read on screen, an upload requirement that rejects color files, and a print preview to spot layout problems before sending a job to a press. Because the conversion runs in the browser, it is also useful when you cannot upload a sensitive document to an external service and still need a black-and-white copy to send onward.
The tool is the wrong fit when the output must remain interactive or compliant. A PDF editor that keeps the original text layer is the right choice if you need searchable text, accessible tags, fillable forms, signature validation, vector fidelity, or controlled compression. For those jobs, a raster grayscale converter removes the very features you are trying to keep.
Reading the Output Before You Share It
Open the resulting PDF in your normal reader, click where a link used to be, try selecting a sentence, and check the file size. If a link is gone, the text no longer highlights, or the file is several times larger than the source, those are expected outcomes of a raster conversion rather than signs of a bug. Keep the source file alongside the grayscale copy so you can fall back to the interactive version whenever you need searchable text or live links again.
The MDN reference for CanvasRenderingContext2D.getImageData describes the underlying browser API the tool relies on to read every pixel back out of the canvas, and the Mozilla PDF.js API documents the renderer that draws each source page before the grayscale math runs.