百度无解——打印机分辨率(DPI)问题
打印纸宽为60mm,高为40mm,我设置打印区域为240*160,
pd.DefaultPageSettings.PaperSize = new PaperSize("Custum", 240, 160);
经过打印试验,搞好将打印纸铺满,于是我计算打印机的分辨率:240/(60/25.4)=101.6 DPI,
但我在代码中获取打印机分辨却为203!
e.Graphics.DpiX .ToString ()的值为"203"!
为什么相差了一半?
这个问题拖了很久都未解决,也不知道哪个地方出现了错误,求指点呀……
------解决方案--------------------你对打印机的dpi算错了呗。
------解决方案--------------------打印机的DPI应该是固定的吧
图形对象的DPI可以自己设置
------解决方案--------------------
你在代码中获取的DPI就是打印机的DPI啊。
------解决方案--------------------哈哈你有个关键值没设定
在打印的时候可以指定 PageUnit 也就是 使用单位。如果你指定的是mm 毫米。
那么你在测量的时把你的测量数据mm值对到DrawString坐标即。
不用管设备分辨率、DPI 什么的。因为它是与设备无关的。
------解决方案--------------------关键代码。
e.Graphics.PageUnit = GraphicsUnit.Millimeter
测量值 往DrawString里写就行了。
PaperSize 用的是英尺 一般我们都是用的是毫米 Millimeter所以需要转换一下纸大小。
width为mm
width/25.4 *100 好像就可以了。你自己查一下
------解决方案--------------------打印机的dpi都是大于电脑的