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

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

以上思路不知道能否行得通,大家讨论讨论如何实现。
或者,能有直接实现行式打印功能的方法就更好啦。
...全文
1267 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
通过串或并口直接送打印机.打印机的开发文档里应当有相应的说明.

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧