我有一台合作伙伴 RP-300 收据打印机,它连接了一个现金抽屉,用于实验目的。它通过 LPT1 连接到 PC。
我想通过 java 应用程序或批处理文件打开钱箱。
有任何想法吗?
编辑我发现打开抽屉的命令是ESC p,十六进制值\x1b\x70\x00,
但是如何使用 cmd 将该命令发送到打印机?我尝试将后者放入文本文件中,然后使用复制 \b 文件名 lpt1,但它只是在打印机上打印文本文件的内容。
我有一台合作伙伴 RP-300 收据打印机,它连接了一个现金抽屉,用于实验目的。它通过 LPT1 连接到 PC。
我想通过 java 应用程序或批处理文件打开钱箱。
有任何想法吗?
编辑我发现打开抽屉的命令是ESC p,十六进制值\x1b\x70\x00,
但是如何使用 cmd 将该命令发送到打印机?我尝试将后者放入文本文件中,然后使用复制 \b 文件名 lpt1,但它只是在打印机上打印文本文件的内容。
我查看了手册,该命令包括另外两个参数,脉冲打开和脉冲关闭。这里也有很好的解释:如何编程现金抽屉以打开。所以命令是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. 检查您是否在插件下安装了转换器。如果没有,找到并安装它
3. 在 Notepad++ 中创建新文件
4. 在编码下选择 ANSI
5. 输入 1b700019fa
6. 选择(突出显示)您输入的字符串(或使用 Ctl-A 全选)
7. 转到插件->转换器-> HEX --> ASCII
8。你应该看到乱码输出(里面有字母 p)。保存
9. 将文件发送到打印机。
您应该能够使用 RXTX 或 javax.comm(depriated) 将二进制命令发送到 LPT 端口。
http://rxtx.qbang.org/wiki/index.php/Using_RXTX
http://rxtx.qbang.org/wiki/index.php/Parallel_Communications