How to Print in Grayscale in C#
Printing in grayscale converts color documents to black-and-white output at the printer driver level. This preserves colored ink or toner cartridges during high-volume batch runs, keeps internal drafts readable without wasting expensive consumables, and meets formatting requirements where monochrome output is preferred.
IronPrint makes this a single boolean: set PrintSettings.Grayscale to true, and the printer produces black-and-white output regardless of the document's original colors. We cover installation, basic usage, async workflows, and combined settings below.
Quickstart: Print in Grayscale
- Install IronPrint via NuGet:
Install-Package IronPrint - Add
using IronPrint;to the file - Create a
PrintSettingsobject - Set
Grayscaletotrue - Pass settings to
Printer.Print()with the file path
-
Install IronPrint with NuGet Package Manager
PM > Install-Package IronPrint -
Copy and run this code snippet.
using IronPrint; // Print in grayscale — one property, one line PrintSettings settings = new PrintSettings(); settings.Grayscale = true; Printer.Print("report.pdf", settings); -
Deploy to test on your live environment
Start using IronPrint in your project today with a free trial
Minimal Workflow (5 steps)
- Install the IronPrint C# printing library
- Create a
PrintSettingsobject - Set
Grayscaletotrue - Pass settings to
Printer.Print() - Verify the printed output is in black and white
How Do I Enable Grayscale for Silent Printing?
To print in grayscale without any user interaction, we enable the Grayscale property and pass the settings to Printer.Print():
:path=/static-assets/print/content-code-examples/how-to/grayscale-printing/grayscale-printing-silent-grayscale.cs
using IronPrint;
// Silently print a color PDF as black-and-white
PrintSettings settings = new PrintSettings
{
Grayscale = true
};
Printer.Print("color-brochure.pdf", settings);
Imports IronPrint
' Silently print a color PDF as black-and-white
Dim settings As New PrintSettings With {
.Grayscale = True
}
Printer.Print("color-brochure.pdf", settings)
When Grayscale is true, the printer driver strips color information before laying ink or toner on the page. The original file remains unchanged — only the printed output is monochrome. This is the same behavior as manually selecting "Black & White" or "Grayscale" in the Windows print dialog, except we control it programmatically without any user interaction.
Grayscale defaults to false when not explicitly set, meaning documents print in full color by default.
When Should I Use Grayscale Printing?
Grayscale printing is the right choice in several common scenarios:
Cost reduction — Color toner cartridges cost significantly more than black cartridges. Switching internal-facing documents (drafts, timesheets, internal memos) to grayscale can reduce per-page printing costs substantially over a quarter.
Readability — Documents with light-colored text or pastel backgrounds can be difficult to read on paper. Grayscale conversion often improves contrast and legibility for text-heavy content.
Compliance and archival — Some regulated industries require monochrome copies for filing. Grayscale output meets this requirement without modifying the source document.
For documents where color accuracy matters — marketing collateral, branded materials, charts with color-coded data — leave Grayscale at its default false value.
How Do I Combine Grayscale with Other Print Settings?
Grayscale is one property on PrintSettings. We can combine it with paper margins, paper size, orientation, DPI, number of copies, and printer selection in a single configuration object:
:path=/static-assets/print/content-code-examples/how-to/grayscale-printing/grayscale-printing-combined-settings.cs
using IronPrint;
// Full configuration: grayscale draft printing for internal distribution
PrintSettings settings = new PrintSettings
{
Grayscale = true,
NumberOfCopies = 10,
PaperSize = PaperSize.A4,
PaperOrientation = PaperOrientation.Portrait,
Dpi = 150,
PaperMargins = new Margins(15),
PrinterName = "Office Mono Laser"
};
Printer.Print("team-memo.pdf", settings);
Imports IronPrint
' Full configuration: grayscale draft printing for internal distribution
Dim settings As New PrintSettings With {
.Grayscale = True,
.NumberOfCopies = 10,
.PaperSize = PaperSize.A4,
.PaperOrientation = PaperOrientation.Portrait,
.Dpi = 150,
.PaperMargins = New Margins(15),
.PrinterName = "Office Mono Laser"
}
Printer.Print("team-memo.pdf", settings)
Pairing Grayscale = true with a lower DPI like 150 creates a fast, economical draft-printing configuration ideal for high-volume internal documents. For non-blocking workflows, pass the same PrintSettings to Printer.PrintAsync() instead.
What File Formats Support Grayscale Printing?
IronPrint supports grayscale output for every file format the library handles: PDF, PNG, TIFF, GIF, JPEG, and BMP. The Grayscale property applies identically regardless of the source format — we pass the same PrintSettings object to Printer.Print() whether we are printing a PDF report or a JPEG photograph.
For PDF-specific workflows that require converting the file itself to grayscale before printing, IronPDF's grayscale rendering provides that capability. IronPrint's Grayscale property, by contrast, keeps the source file in color and only affects the printed output.
What Are My Next Steps?
We covered how to enable grayscale printing with PrintSettings.Grayscale = true, demonstrated silent and async grayscale workflows, discussed when monochrome output makes sense, combined grayscale with other settings for draft-quality batch printing, and confirmed format support across all IronPrint-compatible file types.
For further reading, explore these resources:
- IronPrint Tutorials — Print Document for end-to-end printing walkthroughs.
- Print Settings How-To for margins, DPI, orientation, copies, and more.
- PrintSettings Class API Reference for complete property documentation.
- Printer Class API Reference for all static printing methods.
Get a free trial license to test every feature in a live environment, or view licensing options when you're ready to deploy.

