Home > DeveloperSection > Forums > How to Print visualization as grayscale WPF?
john rob

Total Post:108

Posted on    November-04-2014 2:41 AM

 C# WPF 

 1 Reply(s)
 1294  View(s)
Rate this:

How can I print a visual as grayscale without actually showing the PrintDialog, e.g.

PrintDialog dialog = new Dialog();
dialog.PrintQueue = new PrintQueue(new PrintServer(), printerNameAsString);
dialog.PrintTicket.InputBin = InputBin.AutoSelect;
// Further settings, e.g. PageMediaSize and scaling the visual.    

dialog.PrintVisual(myVisual, "myDescription");

Can I somehow get the PrinterDialog to print the visual in grayscale? Or is there a completely other way to achieve a grayscale printout of my visual?

Edit: myVisual (the Visual I want to print) is a Grid, so it inherits from UIElement. Edit 2: If possible I would prefer not to use any external libraries (because of company policies).

Manoj Bhatt
Manoj Bhatt

Total Post:154

Posted on    November-04-2014 5:30 AM

In the PrintDialog the OutputColor can be set:

= OutputColor.Grayscale;
Also, the PrintCapabilities make it possible to actually check which OutputColors are possible:

capabilities =
            ReadOnlyCollection<OutputColor> possibleColors = capabilities.OutputColorCapability;

On the hardware available to me this works fine.

Don't want to miss updates? Please click the below button!

Follow MindStick