【发布时间】:2014-06-27 23:11:28
【问题描述】:
我正在打印一些 QR 码(来自 Ruby 脚本),将 ESC/POS 命令写入 Epson TM-T20 热敏打印机。
顺便说一句,我正在编写一个简单的 ESC/POS 命令打印机“驱动程序”。 我正在使用的打印机 Epson TM-T20(USB 接口) 我正在使用串行端口 gem 从 Windows 7 主机进行一些测试。
关于为打印格式化文本和线性条形码编写 ESC/POS 命令一切正常,但我无法理解使用 Epson 提供的唯一可用文档(据我所知)打印 QR CODES 的命令协议,请参阅:http://www.novopos.ch/client/EPSON/TM-T20/TM-T20_eng_qr.pdf
现在,关于 QRCodes 命令的部分对我来说非常晦涩,我无法解释请求的字节序列;相反,我发现我在这里找到的 Nicolas 的示例非常有帮助:https://code.google.com/p/python-escpos/wiki/Usage
破解那个有用的字节码示例,我能够成功打印二维码,请参阅:
我https://twitter.com/solyarisoftware/status/464740233008132096
不过,总的来说,我对 ESC/POS 消息格式感到困惑,尤其是在我将在 QR 码中插入长文本消息(> 400 个字符)的情况下......似乎打印机拒绝(不要print) 包含 400 多个字符的二维码使用此代码:
def test_qrcode (printer, text, print_also_text=false, qr_size=6.chr)
s = text.size + 3
lsb = (s % 256).chr
msb = (s / 256).chr
# https://code.google.com/p/python-escpos/wiki/Usage
escpos = ""
escpos << "\x1D\x28\x6B\x03\x00\x31\x43#{qr_size}"
escpos << "\x1D\x28\x6B\x03\x00\x31\x45\x33"
escpos << "\x1D\x28\x6B#{lsb}#{msb}\x31\x50\x30"
escpos << text #
escpos << "\x1D\x28\x6B\x03\x00\x31\x51\x30"
# writing byte streams directly to the serial port
printer.write escpos
end
是否有人可以建议关于 ESC/POS 命令(=字节码序列)的 CLEAR ESC/POS DOCUMENTATION 以打印 QRCodes(二维码 ESC/POS 命令)?
【问题讨论】:
-
我用 Python 制作了这个库来与 TM-T20 通信。 github.com/benoitguigal/python-epson-printer。您可以使用 print_image 命令打印您的二维码。我猜代码可以很容易地翻译成 Ruby。
-
我知道!我已经在六月重播给你了,在这里:raspberrypi.org/forums/viewtopic.php?p=562202#p562202 :-)
标签: ruby printing barcode qr-code zebra-printers