找回密码
 立即注册

QQ登录

只需一步,快速开始

goodboy

初级会员

18

主题

46

帖子

432

积分

初级会员

积分
432
goodboy
初级会员   /  发表于:2017-10-15 21:02  /   查看:3171  /  回复:2
用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;
}


2 个回复

倒序浏览
goodboy
初级会员   /  发表于:2017-10-15 21:03:37
沙发
Winform程序
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-10-16 12:02:32
板凳
Margin的单位是百分之一英寸,不是像素。
Set the margin as 100th-of-an-inch units; therefore, to set a 3/4-inch margin, set the property to 75.
您英寸转换毫米就好了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部