Как печатать на Python без предпросмотра файла
сделал небольшую программку, которая формирует этикетку через Pillow, можно сохранить в формате изображения либо pdf, но не могу ничего внятного найти на счёт печати без предпросмотра. За раз могут печататься сотни этикеток, так что точно нужно его обойти. Подскажите ка это можно сделать для pdf или изображения. Заранее спасибо
*Принтер Godex530, размер этикетки 53мм х 240мм, нашёл кучу статей и в большинстве из них используется win32, но не могу понять что не так с моим кодом. Вроде он отправляет побайтово на принтер, в очереди печати файл отображается, но печать так и не начинается. Посмотрите пожалуйста, у меня ощущение что я накосячил с форматом отправляемого файла. Так же нашёл статью с таким же Godex530, там использовали ZPL, но я так и не понял как его к сети подключили. Если это более верный вариант чем печать изображением, то подскажите как это сделать, пожалуйста. [Тот источник]:Программа для печати штрихкодов на принтере Godex 530 на языке python
Текст программы: ''' from PIL import Image import win32print import win32ui import win32con import win32api
def print_image(image_path):
printer_name = win32print.GetDefaultPrinter()
image = Image.open(image_path)
width, height = image.size
hDC = win32ui.CreateDC()
hDC.CreatePrinterDC(printer_name)
printable_area = hDC.GetDeviceCaps(win32con.DESKTOPHORZRES), hDC.GetDeviceCaps(win32con.DESKTOPVERTRES)
printer_size = hDC.GetDeviceCaps(win32con.HORZRES), hDC.GetDeviceCaps(win32con.VERTRES)
ratio = min(printable_area[0] / width, printable_area[1] / height)
width = int(width * ratio)
height = int(height * ratio)
image = image.resize((width, height))
printdefaults = {"DesiredAccess": win32print.PRINTER_ALL_ACCESS}
printer = win32print.OpenPrinter(printer_name, printdefaults)
printer_info = win32print.GetPrinter(printer, 2)
win32print.SetPrinter(printer, 2, printer_info, 0)
path = image_path[:-len(image_path.split('/')[-1])] + 'NOW_PRINTING.png'
image.save(path)
im = open(path, 'rb')
job_info = [image_path.split('/')[-1], None, "raw"]
win32print.StartDocPrinter(printer, 1, job_info)
win32print.StartPagePrinter(printer)
#win32api.ShellExecute(2,'print', path,'.','/manualstoprint',0)
win32print.WritePrinter(printer, im.read())
win32print.EndPagePrinter(printer)
win32print.EndDocPrinter(printer)
im.close()
win32print.ClosePrinter(printer)
print_image("/Супер-залупа/Супер-залупа.jpg")'''