asp.net如何实现pos小票打印机那样的行式打印,而不是页面式打印?

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

以上思路不知道能否行得通,大家讨论讨论如何实现。
或者,能有直接实现行式打印功能的方法就更好啦。
...全文
1193 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
slyant 2008-06-29
还是不太明白
回复
zhiweixuexi8 2007-12-01
顶`我也想知道
回复
SeeSunSet 2007-12-01
1,写插件.以文件方式打开LPT端口往里面写入即可.一般POS软件都这样做.

2,用一个隐藏的Ifame,往里面写入要打印的内容,然后用JSP代码直接打印网页即可.不过纸张分页就会有问题.
回复
wuxing2006 2007-12-01
http://edu.web162.com/Web/56/2471.html

传说中的打印方案三,可以实现
回复
指间的风 2007-12-01
2楼回答的已经很具体了。mark.
回复
曲滨_銘龘鶽 2007-11-30
用google搜索 "CreateFile( LPT1, GENERIC_READ GENERIC_WRITE" 引号内的
就可以看见你要的了、 如果找到的看不懂

原理是用API打开打印口、或打印机 返回的句柄转化为.net 的流然后向打印机发文本就可以了、发一行打一行!
回车就走纸 好像很长时间没做了
回复
lnwuyaowei 2007-11-30
通过串或并口直接送打印机.打印机的开发文档里应当有相应的说明.
回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2007-11-30 11:02
社区公告
暂无公告