โ† All tools
๐ŸŒ—

Convert PDF to Grayscale โ€” Black and White Online

Remove color from a PDF: convert the document to grayscale right in your browser. Saves toner when printing and shrinks the file. No server upload.

+Upload PDF or photoor drag & drop files here๐Ÿš€ Launch Tool for Free

How It Works

01

Upload your PDF

Open a PDF document in your browser. No server upload required.

02

Press "Grayscale"

All pages are desaturated pixel by pixel right in the tab.

03

Download the B&W PDF

A finished document with no color โ€” lighter to print and smaller in size.

Why pdfredX

๐Ÿ”’

Full Privacy

Files never leave your browser. No upload to third-party servers.

โšก

Client-Side Processing

All computations happen locally โ€” fast, secure and free.

๐Ÿ†“

No Registration

Just open your browser and start. No accounts needed.

๐Ÿ“ฑ

Works on All Devices

Desktop, tablet, and mobile โ€” no installation required.

Related Articles

How to Make a PDF Black and White Online: Convert the Document to Grayscale
A color document needs to be printed without spending color toner; a busy scan has to be given a plain look; a heavy PDF with a background has to be lightened before sending. In all these cases, converting to grayscale helps. The "Grayscale" tool in pdfredX removes color right in the browser: one button, and the whole document becomes black and white. Nothing is uploaded to a server.

A color document needs to be printed without spending color toner; a busy scan has to be given a plain look; a heavy PDF with a background has to be lightened before sending. In all these cases, converting to grayscale helps. The "Grayscale" tool in pdfredX removes color right in the browser: one button, and the whole document becomes black and white. Nothing is uploaded to a server.


Step 01. Upload the PDF

Open pdfredx.com and add the document. PDF.js renders the pages in the tab and lays them out in the gallery. The file is read locally โ€” nothing goes to a server.


Step 02. Press "Grayscale"

In the toolbar, press ๐ŸŒ— Grayscale. The app walks through all the pages and desaturates each one pixel by pixel โ€” color is replaced by the matching level of gray by brightness. The black-and-white result shows in the gallery at once. No need to reload the document.


Step 03. Download the black-and-white PDF

Press "Create PDF" โ€” you get a document with no color. It saves color toner when printing (the printer uses only the black cartridge) and often weighs less, because a gray JPEG compresses more tightly than a color one. The download goes straight from the browser. Free, no registration.


How it works under the hood

Each page is already an image (PDF.js drew it at load time). Desaturation runs per pixel: for each pixel the brightness is computed by the luma formula Rร—0.299 + Gร—0.587 + Bร—0.114, and all three channels are set to that value. The result is saved as the page's new editUrl. All of this happens in the tab's memory โ€” color is removed locally, without a server.


Known limitations

The operation is irreversible in the finished file. Desaturation changes the pages' editUrl; the source color isn't damaged (the original isn't mutated), but a downloaded B&W file can't be turned back to color โ€” apply it to a copy and keep the original.

The result is raster. Pages are exported as images, so the text in the finished file can't be selected. That's a general property of the export, not of the desaturation.

Grayscale, not "hard" B&W. The tool produces smooth shades of gray (like a photo), not a two-tone black-and-white raster (1-bit). For a document that's usually what you want.


Need to shrink the size too? After desaturation, run the file through Compress PDF โ€” gray compresses especially well.

Try it right now โ€” pdfredx.com, no registration, your files stay with you.

Grayscale Without a Server: How to Desaturate a Color PDF Locally, Without Uploading the Document
Converting a color PDF to gray is a two-second operation, but an ordinary online service asks you to upload the document to its server. And those are often contracts, scans, internal reports โ€” things you're preparing to print or send and don't want to hand to an outside machine just for a simple desaturation. Let's look at how to make a PDF black and white locally.

Converting a color PDF to gray is a two-second operation, but an ordinary online service asks you to upload the document to its server. And those are often contracts, scans, internal reports โ€” things you're preparing to print or send and don't want to hand to an outside machine just for a simple desaturation. Let's look at how to make a PDF black and white locally.


Where the document goes on server-side converters

When you upload a PDF to a typical online "to B&W" converter, the file travels in full to a remote machine. From there it follows the service's policy, which few people ever read:

  • the document is stored in a contractor's temporary storage (AWS, GCP, Azure);
  • it is processed on someone else's server;
  • it is kept from a few hours to several days "for reliability";
  • it is logged together with metadata โ€” IP, time, file name and size.

Doubly galling: desaturation is pure local arithmetic over pixels, it needs no server-side computation at all โ€” yet the price is full access to the document's contents by an outside service.


Local desaturation: the document never leaves the tab

pdfredX removes color without uploading the file anywhere.

The file is read locally. PDF.js opens the document in the tab and draws the pages to a Canvas. There is no network request carrying your file.

Desaturation happens in the tab's memory. The per-pixel brightness pass runs right in the tab โ€” an operation on data that is already loaded. Nothing is sent anywhere.

The finished file is built on the client. The black-and-white PDF is formed in the tab and lands in "Downloads," rather than flying to a server and back.

It works offline. Load the document, turn off the internet and desaturate โ€” everything keeps working. The network is only needed to load the app once.

In practice: load the PDF, press "๐ŸŒ— Grayscale", save. The document stays with you the whole time.


What we cannot guarantee โ€” an honest disclaimer

Client-side processing protects a document from being sent to external servers, but it is not a shield against every threat.

Malware or a keylogger on the device. If the machine is compromised, a program can read files off the disk bypassing the browser entirely.

Browser extensions with broad permissions. An extension with "read data on all sites" access can, in theory, see the tab's contents. For sensitive documents, work in a profile without third-party extensions or in a private window.

The saved file stays on your disk. If the device is not protected by encryption, files can be read by third parties with physical access.

We provide isolation at the level of the browser tab. The rest is on the user's side.


Desaturate a PDF without uploading it to a server โ€” pdfredx.com, free, no registration.

How PDF Desaturation Works in the Browser: Per-pixel Brightness with the Luma Formula
You can remove color from an image naively โ€” average the channels, `(R+G+B)/3`. But such an "average gray" distorts perception: yellow comes out too dark, blue too light, because the eye perceives the brightness of the channels differently. Correct desaturation computes **perceived brightness** (luma) with weighted coefficients. Let's break down how the `grayscale` tool in pdfredX is built: why exactly this formula, where the pixel pass happens, and what it gives for printing.

You can remove color from an image naively โ€” average the channels, (R+G+B)/3. But such an "average gray" distorts perception: yellow comes out too dark, blue too light, because the eye perceives the brightness of the channels differently. Correct desaturation computes perceived brightness (luma) with weighted coefficients. Let's break down how the grayscale tool in pdfredX is built: why exactly this formula, where the pixel pass happens, and what it gives for printing.


Why luma, not an average

The human eye is more sensitive to green and weaker on blue. So the standard brightness formula (luma, from ITU-R BT.601) gives green the largest weight and blue the smallest:

Y = Rร—0.299 + Gร—0.587 + Bร—0.114

Such a gray looks natural: the relative lightness of objects is preserved, as in a black-and-white photo. A simple average (R+G+B)/3 doesn't do this โ€” the picture "drifts" in tone.


The implementation, piece by piece

The pixel pass

The page is already rasterized (PDF.js drew it into an image at load time). Desaturation draws it onto a canvas, takes the pixel buffer and walks it 4 bytes at a time (RGBA):

const ctx = c.getContext('2d');
ctx.drawImage(img, 0, 0);
const imgData = ctx.getImageData(0, 0, c.width, c.height);
const d = imgData.data;                          // Uint8ClampedArray, [R,G,B,A, R,G,B,A, โ€ฆ]
for (let i = 0; i < d.length; i += 4) {
  const y = (d[i]*0.299 + d[i+1]*0.587 + d[i+2]*0.114) | 0;  // brightness
  d[i] = d[i+1] = d[i+2] = y;                     // all three channels = gray; alpha untouched
}
ctx.putImageData(imgData, 0, 0);
return c.toDataURL('image/jpeg', 0.92);

| 0 quickly drops the fractional part (rounding down). The alpha channel (d[i+3]) isn't changed โ€” transparency is preserved. The result becomes the page's new editUrl.

Why it's all local and fast

This is pure arithmetic over an array in the tab's memory โ€” no network, no server. getImageData on an image from a dataURL doesn't "taint" the canvas (it's not tainted), so the pixels are readable. A tick() is inserted between pages so a long document doesn't freeze the tab.


Trade-offs and the limits of the approach

Grayscale, not 1-bit. The formula produces smooth gradations (grayscale), not a two-tone black-and-white raster (halftone/threshold). For documents that's usually what's needed; hard B&W is a separate task.

A raster result. The page image is desaturated, so the text in the exported file can't be selected.

A smaller size as a bonus. A gray JPEG compresses more tightly than a color one (no chroma) โ€” the file often gets lighter, and color toner is saved on printing.


What's next

A B&W threshold (1-bit) โ€” a "hard" black-and-white mode with an adjustable threshold or dithering for faxes and document scans.

Contrast adjustment โ€” a brightness/contrast slider before desaturation for faded scans.


Want to test it โ€” load a color PDF on pdfredx.com and press "Grayscale". No registration, no file upload to a server.

๐Ÿš€ Launch Tool for Free