открытие до через принтер с Python

У меня есть сетевой принтер Epson TM-U220B и денежный ящик. Я разрабатываю веб-приложение Python, мне удалось настроить принтер поверх моего приложения. Мой принтер работает нормально, я просто хочу открыть до тех пор, пока я не распечатаю билет. Я нашел несколько кодов в Интернете для открытия до ящика.

Вот код:

def print_(printer_name, file_path):
    preorder = chr(27)+chr(100)+chr(0)    
    cut_paper = chr(29)+chr(86)+chr(66)+chr(0)

    open_till = chr(27)+chr(112)+chr(10)

    the_file = open(file_path, "a")
    the_file.seek(0)
    the_file.write(preorder)
    the_file.seek(0,2)
    the_file.write(cut_paper)
    the_file.write(open_till)
    the_file.close()
    conn.printFile(printer_name, file_path, md5(file_path), {})

Код open_till не работает, все остальное в порядке

Спасибо


person Fi3n1k    schedule 31.10.2012    source источник
comment
попробуйте режим wb вместо a и настройте принтер для приема команд. Чтобы открыть прикрепленный денежный ящик, используйте управляющие коды 27,112,0,25,250   -  person jfs    schedule 31.10.2012
comment
когда я ввожу код для open_till, принтер вообще не печатает   -  person Fi3n1k    schedule 08.11.2012


Ответы (1)


Вы можете использовать приведенный ниже код, чтобы открыть денежный ящик

import win32print

def OpenCashDrawer(printerName) :   
       printerHandler = win32print.OpenPrinter(printerName)
       cashDraweOpenCommand = chr(27)+chr(112)+chr(0)+chr(25)+chr(250)
       win32print.StartDocPrinter(printerHandler, 1, ('Cash Drawer Open',None,'RAW')) 
       win32print.WritePrinter( printerHandler, cashDraweOpenCommand)
       win32print.EndDocPrinter(printerHandler)
       win32print.ClosePrinter(printerHandler)

OpenCashDrawer("YourPrinterName")
person E.D    schedule 07.06.2018