Я пытаюсь распечатать на термопринтере TM-T20II, чтобы распечатать квитанции. Вот мой код:
from escpos import printer
from escpos import *
import escpos
from escpos import config
import usb.core
import usb.util
import usb.backend.libusb1
from ctypes import c_void_p, c_int
backend = usb.backend.libusb1.get_backend(find_library=lambda x: "libusb-1.0.dll")
backend.lib.libusb_set_option.argtypes = [c_void_p, c_int]
backend.lib.libusb_set_option(backend.ctx, 1)
p = printer.Usb(0x04b8,0x0e15,0,0x82,0x01, backend=backend)
p.text('test')
Я использую серверную часть usbdk, без нее я получаю «NotImplementedError: операция не поддерживается или не реализована на этой платформе». Я делаю это, потому что для работы моей программы мне нужно использовать драйверы Epson по умолчанию. Когда я запускаю этот код, я получаю следующую ошибку:
Эта ошибка возникает, только когда я добавляю p.text()
. Найти принтер и все остальное не проблема. Я также хочу сказать, что write()
работает в модуле PyUSB, но мне было бы намного удобнее не переводить выходные данные в моей программе на запутанный язык ESC / P.
Я с использованием Spyder 4 с 64-разрядной версией anaconda (python 3.7), libusb 1.0.22b9, самой последней версией pyusb на github (версия PyPi имеет нереализованную ошибку) и python -escpos 3.0a8. Я считаю, что все они тоже 64-битные. У меня есть libusb1.dll из папки 64x в моем System32 и 86x в SysWoW64, как рекомендовано. У меня также установлен Usbdk. Пожалуйста, дайте мне знать, если у вас есть идеи, которые нужно исправить, или если вам нужны дополнительные сведения. Уже неделю гуглил.