我有一台合作伙伴RP-300收据打印机,带有现金抽屉,用于实验目的。它通过LPT1连接到PC。
我想通过java应用程序或批处理文件打开现金抽屉。
有什么想法吗?
EDIT 我发现打开抽屉的命令是ESC p,十六进制值\ x1b \ x70 \ x00,
但如何使用cmd将该命令发送到打印机?我尝试将后者放入文本文件中,然后使用copy \ b文件名lpt1,但它只是在打印机上打印文本文件的内容。 / p>
答案 0 :(得分:5)
我查看了手册,命令中还包含两个参数:脉冲开启和脉冲关闭。这里也有很好的解释:How to program cash drawer to open。
因此命令为ESC p m t1 t2
,其中m与连接器引脚有关,t1,t2为高/低时间。
您只发送ESC p 0 (\x1b\x70\x00)
,而您应该这样做。 ESC p 0 25 250 (\x1b\x70\x00\x19\xfa)
copy / b是将控制命令发送到打印机的完美有效方式,它应该可以正常工作。
使用任何十六进制编辑器确保您的文件包含正确的十六进制序列。
希望这有帮助
编辑:要获取在文件中编码的命令序列(长而简单):
1。获取Notepad ++
2。检查你是否在插件下安装了Converter。如果没有,请找到并安装它
3。在Notepad ++中创建新文件
4。在编码下选择ANSI
5。输入1b700019fa
6。选择(突出显示)您输入的字符串(或选择全部使用Ctl-A)
7。转到插件 - >转换器 - > HEX - > ASCII
8。你应该看到乱码输出(里面有字母p)。保存
9。将文件发送到打印机。
答案 1 :(得分:1)
您应该能够使用RXTX或javax.comm(depricated)将二进制命令发送到LPT端口。
http://rxtx.qbang.org/wiki/index.php/Using_RXTX
http://rxtx.qbang.org/wiki/index.php/Parallel_Communications