Не печатает в python через pywin32
Не печатает на принтере штрих-кодов через pywin32.
Тут импорты:
from win32 import win32api
from win32 import win32print
from PIL import Image, ImageDraw, ImageWin
Ниже функция:
def print_barcode_png(barcode_number, printer_name, code_type,):
barcode_filename = save_barcode_to_file_png(code_type, barcode_number)
print(f'Имя нового файла: {barcode_filename}')
## тут нужные права на использование принтеров
printdefaults = {"DesiredAccess": win32print.PRINTER_ALL_ACCESS}
try:
print('Открываем файл и конвертация в bmp...')
im = Image.open(barcode_filename)
print(f'im: {im}')
print(type(im))
#bmp = im.convert('RGB').tobytes('raw', 'BGR') ## временно убрал
im_rotate = im.rotate(angle=90)
bmp_rotate = im_rotate.tobytes('raw', 'RGB')
bmp = im.tobytes('raw', 'RGB')
print(f'type(bmp): {type(bmp)}')
print("Выбираем принтер...")
print(f"Подключаемся к принтеру {printer_name}...")
opened_printer = win32print.OpenPrinter(printer_name, printdefaults)
print('Успешно подключен - opened_printer: ', opened_printer)
print_job = win32print.StartDocPrinter(opened_printer, 1, ('Test print', None, "RAW"))
print("win32print.StartPagePrinter(opened_printer): ", win32print.StartPagePrinter(opened_printer))
print(win32print.WritePrinter(opened_printer, bmp))
win32print.EndPagePrinter(opened_printer)
win32print.EndDocPrinter(opened_printer)
except Exception as e:
print("Ошибка при отправке на печать:", str(e) )
finally:
if opened_printer:
print("Отключаемся от принтера...")
closed_printer = win32print.ClosePrinter(opened_printer)
print("closed_printer: ", closed_printer)
else:
print("Подключений к принтеру нет.")
Так происходит вызов:
print(print_barcode_png(barcode_numder_EAN13, 'Xprinter XP-365B' , 'EAN13'))