首页 新闻 会员 周边 捐助

C#根据图片模板打印时的位置问题

0
悬赏园豆:50 [已解决问题] 解决于 2013-12-16 16:53

http://developer.51cto.com/art/200908/146983.htm

仿照上述示例做了个图片模板(PS中新建的是A4纸 72分辨率 2480x2508像素),并在PS中计算好需要填充内容的x/y轴位置,把相应的x/y坐标数值写入到cs代码中,然后用本机1440*900分辨率的笔记本、Canon MP230打印出来的位置是按正常的显示。

现在客户那用同样分辨率的笔记本加其它品牌的打印机打印出来的内容字体及LOGO变的非常的大,靠左上显示,内空在A4纸上只显示一半。这是为什么,不能用像素定位吗?要怎么解决呢?

 

问:

1、如何做到不管是什么打印机及分辨率都能显示正常,打印所有的内容?

2、上面的代码在打印预览窗口点打印的图标时能正常打印,可是当点关闭按钮时又会打印一次,这要如何修改?

谢谢各位。

cean的主页 cean | 初学一级 | 园豆:49
提问于:2013-08-05 23:14
< >
分享
最佳答案
1

 单位用pt吧,不要用px了~ pt(point)是打印专用单位

收获园豆:50
libaoheng | 小虾三级 |园豆:1433 | 2013-08-05 23:56

谢谢回复。你所说的使用pt(point)是在下面这位置设置吗?

 e.Graphics.DrawImage(temp, destRect, 0, 0, temp.Width, temp.Height, System.Drawing.GraphicsUnit.Point);

=================

这一句是已经生成数据后的图片调用的代码,如果改成非“Pixel”形式的设置都会报“用户代码未处理 未实现”的错误提示。

问:

1、另外在字体大小设置那边需要也设置吗?Font f = new Font("宋体", 6, GraphicsUnit.Point);

2、因为我做的图片模板上面带有公司LOGO以及公司名称,在客户那打印出来后这些信息也会变得非常的大,那是不是要在PS中把这些信息也相应的变小?

3、如果使用pt,那位置是要怎么计算得到?

谢谢

cean | 园豆:49 (初学一级) | 2013-08-06 06:16
libaoheng | 园豆:1433 (小虾三级) | 2013-08-06 09:53

@李宝亨: 看了上面的文章,还是没头绪。。-_-。

cean | 园豆:49 (初学一级) | 2013-08-11 21:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册