Отправьте строку текста на принтер 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)

0 ответов

Другие вопросы по тегам