我是 ESC/POS 世界的新手。 我有一台连接到 Windows 7 桌面的 Epson TM-T20II 打印机 USB。 下面的代码是通过此链接从 Epson 获取的示例应用程序:https://reference.epson-biz.com/modules/ref_escpos/index.php?content_id=269
对于我的测试,我已将代码粘贴到记事本中并将其内容打印到 Epson 打印机。 打印机“按原样”打印下面的代码。 我需要做什么才能让打印机解释 ESC/POS 命令?
ESC "@"
ESC "3" 18
ESC "a" 1
GS "!" 0x11
0xC9 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xBB LF
0xBA 0x20 0x20 0x20 0x45 0x50 0x53 0x4F 0x4E 0x20 0x20 0x20 0xBA LF
0xBA 0x20 0x20 0x20
GS "!" 0x00
"Thank you "
GS "!" 0x11
0x20 0x20 0x20 0xBA LF
0xC8 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xBC LF
ESC "2"
GS "!" 0x00
ESC "J" 4
"NOVEMBER 1, 2012 10:30"
ESC "d" 3
ESC "a" 0
"TM-Uxxx 6.75" LF
"TM-Hxxx 6.00" LF
"PS-xxx 1.70" LF LF
GS "!" 0x01
"TOTAL 14.45" LF
GS "!" 0x00
"---------------------------------------" LF
"PAID 50.00" LF
"CHANGE 35.55" LF
ESC "p" 0 2 20
GS "V" 66 0
看来您只是使用打印机驱动程序将文本发送到打印机。这是因为您的打印机驱动程序不会解释您输入的文本,而是将其呈现以进行打印。您必须将原始字节序列直接发送到打印机。
我不知道是否有办法仅使用Windows打印机接口来实现这一点。也许有类似“原始”驱动程序的东西。不过,您可以使用 ESC/POS 库。对于 php,有 escpos-php;对于 Python,有 python-escpos。可能还存在其他语言的库。
它们为您提供例如 ESC/POS 命令集的抽象。 这是 python-escpos 的使用示例:
from escpos.printer import Usb
# the parameters of the next call depend on the
# Vendor ID and Product ID of your USB-printer
p = Usb(0x04b8,0x0202,0)
p.text("Hello World\n")
p.image("logo.gif")
p.barcode('1324354657687','EAN13',64,2,'','')
p.cut()
它连接到打印机,打印文本“Hello World”,末尾换行。然后继续打印图像(当然必须可用)和条形码,最后切割纸张。
此外,您可以使用
p.raw(b'\x1b'+'@')
将 ESC/POS 序列“ESC @”发送到打印机。这样您就可以直接将示例发送到打印机。
import logging
from escpos.printer import Usb
logging.basicConfig(level=logging.DEBUG)
p = Usb(0x0456, 0x0808, 0)
p.text("Hello World\n")
p.cut()`enter code here`
我收到错误,不知道为什么 文件“D