CS结构的程序打印方面比较容易控制,BS结构的程序打印方面就显得很笨拙,但在企业信息化系统中使用的还是比较普遍的,博客园中有文(@COOL-CHEN)总结的比较到位,转载以记之.
刚开始,由于对打印机不了解,走了很多弯路。原先采用的办法是:
1.点击订单列表里的 “打印快递单按钮”,转到printexpress.aspx页面,加载需要打印的数据,呈现到页面上来。
2.页面背景采用快递单扫描图片(652*365 以前在cs里用的)
3.把加载的数据,一个个放置在需要打印的位置上(以扫描快递图片)。
麻烦不断, 位置始终对不上,而且打印机走纸距离不对,所以连续打印也是不正确的。
后来,经过一翻了解打印机的得出:
1.打印机是可以设置纸张大小的,这样就可以解决连续打印走纸的距离。
2.用直尺量快递单的大小,23cm*12.7cm(像韵达,圆通 声明:我不是打广告的)都是这种规格的。
3.设置打印机的尺寸(server2003): 开始-》打印机和传真-》右击 服务器属性->创建新格式-》填写上面量好的尺寸保存即可
4.给打印快递单的打印机(epson lq635k)设置纸张大小 :选择打印机-》打印首选项-》高级-》选择纸张规格,你刚添加的即可
5.打印机后进纸的时候,纸张一定靠左,以左对齐,然后再对齐右边。这样不会打歪。
再回到程序里,现在知道实际快递单尺寸是23*12.7那么转换成px是多少了呢?接下来打印位置,怎么定位呢?
1.尺寸23*12.7转换成px 后 (23*38)*(12.7*38)=874*483。(大约是 1cm=38px)
2.用ps把扫描好的快递单改成874*483即可。
3.由于我们打印区域只是从0,0开始的(top 和 left),我们用尺子量各个打印位置,top和left,记得量的时候左一定从0开始(最边上量)
4.把图片更换成改好后的尺寸,然后把数据对应到你量好的尺寸处。
5.再把浏览器的页面设置量的 上和下改成0,保存即可。(这步很重要)
再次把调好程序进行打印,位置和走纸很正确。
原文出处:http://www.cnblogs.com/chenhuzi/archive/2010/11/25/web-print-delivery-express-method.html