最近公司需求有变化,要求打印快递单,也是以web方式进行打印。原先是采用cs方式,但为了简化程序应用,所以将cs的打印功能去掉。添加以web方式打印。
刚开始,由于对打印机不了解,走了很多弯路。原先采用的办法是:
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,保存即可。(这步很重要)
再次把调好程序进行打印,位置和走纸很正确。如果不懂的请与我联系。
咱也来谈谈web打印快递单及经验