打印像素毫米相互转换
这种方法相互转换时,会有小数点精度缺失,但是结果符合打印机纸张设定里的尺寸。
1.像素转毫米
PrintDocument printDoc = new PrintDocument(); printDoc.PrinterSettings.PrinterName = 打印机名称; var paperSize = printDoc.PrinterSettings.PaperSizes[0];//获取打印机纸张 Graphics currentGraphics = Graphics.FromHwnd(IntPtr.Zero); float widthMM = (paperSize.Width / (int)currentGraphics.DpiX) * 25.4F;//得出毫米
2.毫米转像素
System.Drawing.Graphics g = System.Drawing.Graphics.FromHwnd(IntPtr.Zero); IntPtr hdc = g.GetHdc(); int width = GetDeviceCaps(hdc, 4); // HORZRES int pixels = GetDeviceCaps(hdc, 8); // BITSPIXEL g.ReleaseHdc(hdc); return (((double)pixels / (double)width) * (double)length);