asp.net如何实现pos小票打印机那样的行式打印,而不是页面式打印?
关于行式打印和页面打印:行式打印是指打印机打印完最后一行,就停在那里,不走出多余的打印纸;页面打印是打印完后,无论打印的行数多少,都会根据系统的设置,把整页纸送出来(比如哪怕在A4打印纸上只打印一行文字,也会把整页打印纸送出来)
现在要实现的功能是:一个基于web的pos系统,扫描完商品条码后,点击《结单》按钮,系统就会自动在pos的热敏小票打印机上开始打印,目前打印机已经可以打印,但是有以下问题需要解决:
1、自定义打印纸张的大小:不是从windows系统中已有的纸张规格(A4,B5)中指定一个,而是自己定义打印纸的长宽分别为多少毫米,及左右上下边距
2、实现行式打印输出,虽然可以在windows系统及IE中指定纸张的长度和宽度,但是,效果不好,指定的纸张太短,商品多的时候会分页打印,一张销售小票,分成几个段,狠难看,指定的太长,记录少的时候也打印出长长的空白纸,很浪费。目前的基本思路是定义要打印的内容的css格式,然后在打印机上测试每行占用打印纸的高度(包含行间距等因素),在打印的时候,用代码计算要打印记录的行数(每条记录一行,不存在折行的情况,因此容易实现),然后计算出需要纸张的长度(比如12cm),然后把这个数值传递到页面设置的参数中,从而实现页面的长度根据数据的多少而动态变化。
以上思路不知道能否行得通,大家讨论讨论如何实现。
或者,能有直接实现行式打印功能的方法就更好啦。