Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get the DPI of the printer in WPF

Tags:

printing

dpi

wpf

I have a WPF application with a custom control. The custom control renders itself to a bitmap and I am able to use the following code to figure out what resolution to use so that the bitmap matches the display resolution.

        PresentationSource ps = PresentationSource.FromVisual(this);
        if (ps != null)
        {
            pixelsPerLogicalUnitX = ps.CompositionTarget.TransformToDevice.M11;
            pixelsPerLogicalUnitY = ps.CompositionTarget.TransformToDevice.M22;
        }

Unfortunately, when I send this control to the printer through a PrintDialog, the PresentationSource is null so I don't know the DPI.

Is there a way to get the DPI ( or a PresentationSource ) for the printer?

like image 310
Adam Tegen Avatar asked Jan 03 '11 19:01

Adam Tegen


1 Answers

you are looking for PrintTicket.PageResolution

http://msdn.microsoft.com/en-us/library/system.printing.printticket.pageresolution.aspx

like image 200
Robert Levy Avatar answered Oct 13 '22 11:10

Robert Levy