用A4纸打印,A4纸 宽度201mm 高度297mm,左边距 20mm,右边距10mm,上下边距都为 15mm,
表格宽度算起来= 210mm-20mm-10mm=180mm=680pix ,这个值也就是表格各列宽度之和,(按下面公式毫米转换成橡素)
打印信息设置如下
m_PrintInfo.Margin.Left = Convert.ToInt(mm2p(20));
m_PrintInfo.Margin.Right = Convert.ToInt(mm2p(10));
m_PrintInfo.Margin.Top = Convert.ToInt(mm2p(15));
m_PrintInfo.Margin.Bottom = Convert.ToInt(mm2p(15));
高度也是类似计算
打印预览时,在比例为 100%时 在屏幕上用尺子量左右上下边距都是设置的数据 20mm,10mm,15mm,15mm.
但是真的用打印机打印出来后发现就不对了,左右边距用尺子量分别是 数据 25mm,15mm,不知什么原因??
下面的转换方法有问题吗,与电脑分辨率有关系吗?这个页边距究竟要怎么写才使打印出来与设置的一样哦,谢谢!!
private float mm2p(float mm)
{
Panel p = new Panel();
Graphics g = Graphics.FromHwnd(p.Handle);
mm = mm * g.DpiX / 25.4f;
return mm;
}
|
|