Отправьте строку текста на принтер ESC / POS в Python с помощью win32print
Я пытаюсь отправить строку текста на термопринтер, который использует ESC/P с помощью win32api.
Мне известно о существовании python-escpos, но я хочу понять, как работает необработанная печать.
Принтер подключен и настроен как принтер по умолчанию. Печать страницы по умолчанию в настройках Windows работает.
Это код, который я пробую. Нужно ли мне использовать любую другую команду escape перед отправкой фактического теста? -Я уже отправляю команду ESC+@ initialize-
import os, sys
import win32print
printer_name = win32print.GetDefaultPrinter ()
print(printer_name)
#
# raw_data could equally be raw PCL/PS read from
# some print-to-file operation
#
if sys.version_info >= (3,):
print(1)
raw_data = bytes ("This is a test", "utf-8")
else:
print(2)
raw_data = "This is a test"
hPrinter = win32print.OpenPrinter (printer_name)
try:
print(3)
hJob = win32print.StartDocPrinter (hPrinter, 1, ("test of raw data", None, "RAW"))
try:
print(4)
win32print.StartPagePrinter (hPrinter)
a = win32print.WritePrinter (hPrinter, raw_data)
print(a)
win32print.EndPagePrinter (hPrinter)
finally:
print(5)
win32print.EndDocPrinter (hPrinter)
finally:
print(6)
win32print.ClosePrinter (hPrinter)