在餐饮行业中普遍使用的点菜等系统中,打印单子是一项最基本的功能。在餐饮中,一般采用的都是POS打印机。但是,在很多点菜系统中,丢单是一件很头痛的事情。本文就如何用java实现绕过驱动控制打印并实现丢单处理,给出一种解决办法。
本文面对的需求是,一个单据同时由多个打印机打印,当一个单据没有打印成功,则需要重新打印(补单)。将打印机连接到路由器并确定打印机正常后,便可以进行测试。
本文的实现思路是:采用队列和线程操作来完成。
本文建立几个对象:
1、打印机对象Printer:打印机编号,打印机IP,打印机端口,默认纸张宽度等
2、打印对象PrintableObject:封装需要打印的信息
3、打印作业对象PrintJob:封装一个PrintableObject对象,同时包含一个状态位,可能的状态有“等待打印”,“正在打印”,“完成打印”。同时含有一个print方法。
4、打印队列PrintQueue:单实例,模拟一个队列,其中的方法是线程安全的。每个元素是PrintJob对象,先进先出,打印失败,重新回到队列的尾部。
5、打印抓取对象PrintableTracker:该对象是一个线程,并且是单实例。不停地从PrintQueue中取PrintJob,打印成功,继续打印下一个;否则,将当前的移到队列的尾部,继续打印下一个。如果队列中没有PrintJob了,则结束。当再次添加PrintJob到PrintQueue中的时候,会启动线程继续打印。
6、PrintUtils:参考打印机自带的命令手册,封装打印命令,在PrintJob中的print方法中调用PrintUtils封装的命令进行打印。在print方法中,建立Socket连接,和打印机通信。
以上实现,在佳博热敏网口打印机下测试通过。解决因为网络问题或者打印机却纸等问题造成的丢单问题。但是,当打印命令已经传送到出去,而此时,打印机断电了,那么这个当来电时没法重新打印。因为在程序中,该操作实际上已经完成,但是这些命令是存在于网络或者打印机缓存中,断电后这些信息就不存在了。这是因为打印机无法判断打印机到底有没有出纸。至少从佳博的打印机命令手册上没有找到。但是,如果其他的打印机可以,那么就可以在Socket中,接收此状态来判断打印是否成功。这样,丢单的概率就更小了。
思路就是如此,仅供参考!
分享到:
相关推荐
80网口打印机修改IP工具
C#完整可运行的网口打印demo,里面还包括了esc指令集的整理,打印二维码等等。 打印模板可分2中,一种是esc指令集合组成的,一种是先把所有内容画成bitmap,再直接打印这张图片,各有各的使用场景。自取
可支持所有爱普生网口打印机,查看IP地址,修改地址、
Java对硬件的控制一直以来都不是其强项,特别是打印,Java很难实现对POS打印机的直接控制,并判断打印是否成功。 本文将探讨一种方法,讲述如何使用Java技术与网口的POS打印机连接,通过Socket技术直接将爱普生指令...
网口打印机修改IP V2.1,网口打印机修改IP V2.1
这是电脑连接佳博打印机使用的网络测试及参数功能设置,GP以太网(Ethernet)接口打印机自2006 年上市以来,凭借着其稳定可靠的质量、极强的兼容性、高速高效的显著特性,被广泛应用于餐饮行业厨房打印点菜单,赢得...
C# 网络打印机 SOCKET ESC/POS 通用代码 [ 网口打印机/小票打印机/热敏打印机 ]
java 网口打印机 esc/pos 打印
关于佳博网口打印机局域网配置教程(方一).pdf
我把默认的IP改为:192.168.5.100 子网255.255.255.252 打印机就不通了,捣鼓了半天没用好,用这个工具才弄好的
解决网口打印机丢单问题,适合佳博厨宝系列打印机,POSDLL.dll动态库的使用说明
网口打印机驱动添加IP端口,网口打印机驱动添加IP端口,网口打印机驱动添加IP端口
可以通过此工具修改佳博80网口打印机的IP地址,可以通过此工具修改佳博80网口打印机的IP地址,可以通过此工具修改佳博80网口打印机的IP地址
网口打印机修改教程。
专业针对网口的厨房打印机设置开发工具,修改网口IP地址。达到网络环境要求
该程序可在java环境中运行(linux或windows)支持打印机网口方式通信,封装了基本的打印机操作函数,函数的说明请参看: printApp\src\test\PrinterInstance.java; 1. printApp\lib目录下的两个jar包需要导入; 2. ...
EscPosWebPrinter Java socket写爱普生打印机9100端口ESC/POS指令实现打印机打印、切纸、开钱箱。
本示例用于网口打印机打印小票功能,并实现了免驱动,免动态链接库。只需要指定网口打印机的IP地址和端口号(默认9100),即可实现打印。 代码进行了封装,并写有较详细的中文注释。.NET程序员对代码稍作改动即可...
80票据打印机 打印机IP设置工具 GAQIPL驱动80票据打印机 打印机IP设置工具 GAQIPL驱动80票据打印机 打印机IP设置工具 GAQIPL驱动80票据打印机 打印机IP设置工具 GAQIPL驱动80票据打印机 打印机IP设置工具 GAQIPL驱动...
佳博网口系列打印机修改IP工具及IP修改操作文档:http://www.gainscha.com/default.php。