Команды ESC / POS не распознаются Epson TM-T20II

Я новичок в мире ESC / POS. У меня есть USB-принтер Epson TM-T20II, подключенный к рабочему столу Windows 7. Приведенный ниже код представляет собой образец приложения, полученный от 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

person Joe Romaine    schedule 24.01.2017    source источник
comment
Я просто хотел поблагодарить вас за публикацию здесь по этой теме. Мы небольшое сообщество новичков в ESC / POS, и нам действительно нужно обсуждение.   -  person Ibber Chochem    schedule 17.04.2018


Ответы (2)


  • Прежде всего убедитесь, что вы отправляете escape-символ, а не буквы ESC. Управляющий символ выглядит следующим образом: ← (введите alt + 27).
  • Во-вторых (на ПК) вам нужно отправить файл прямо на принтер. Один из способов добиться этого - использовать инструмент под названием RawPrint. Удачи!
person Ibber Chochem    schedule 17.04.2018

Похоже, вы просто отправляете текст с драйвером принтера на свой принтер. Это потому, что драйвер вашего принтера не интерпретирует вводимый вами текст, а отображает его для печати. Вместо этого вам придется отправлять необработанные байтовые последовательности прямо на ваш принтер.

Я не знаю, есть ли способ добиться этого, используя только интерфейс принтера 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 @». Таким образом, вы можете напрямую отправить свой пример на свой принтер.

person Patrick Kanzler    schedule 24.01.2017