#python #python-3.x #windows-10
#python #python-3.x #windows-10
Вопрос:
Я пытаюсь распечатать этикетку из Windows 10, используя скрипт python и библиотеку brother_ql. Как мне создать и распечатать этикетку?
Используя PIL, я создал изображение, которое хотел бы напечатать на этикетке. Теперь я хочу создать этикетку для моего принтера этикеток Brother QL-800.
from brother_ql import BrotherQLRaster, create_label
from brother_ql.backends import backend_factory, guess_backend
from brother_ql.devicedependent import models, label_type_specs,
label_sizes
from PIL import Image
LABEL_SIZES = [(name, label_type_specs[name]['name']) for name in
label_sizes]
model = [m for m in models]
printer_model = model[9] #QL-800
label_type = LABEL_SIZES[12] #('29x90', '29mm x 90mm die-cut')
im = Image.open('tempQR.png', 'r')
im = im.resize((306, 991))
qlr = BrotherQLRaster(printer_model)
label = create_label(qlr, im, label_size='29x90', threshold=70, cut=True,
rotate=0)
Ответ №1:
Я знаю, что это вопрос годовой давности, но я не нашел никакой документации, размещенной где-либо в Интернете, так что вот она. Я весело провел время, выясняя это для себя.
Прочитайте раздел «Серверные части» отсюда:http://brother-ql.net/readme.html а также загрузите и запустите фильтр драйверов Windows usb. Если вы еще этого не сделали, стоит прочитать всю страницу.
Я протестировал этот код в Windows 10 и Raspberry pi 4 под управлением Raspbian.
from PIL import Image
from brother_ql.conversion import convert
from brother_ql.backends.helpers import send
from brother_ql.raster import BrotherQLRaster
im = Image.open('tempQR.png')
im.resize((306, 991))
backend = 'pyusb' # 'pyusb', 'linux_kernal', 'network'
model = 'QL-800' # your printer model.
printer = 'usb://0x04f9:0x209b' # Get these values from the Windows usb driver filter. Linux/Raspberry Pi uses '/dev/usb/lp0'.
qlr = BrotherQLRaster(model)
qlr.exception_on_warning = True
instructions = convert(
qlr=qlr,
images=[im], # Takes a list of file names or PIL objects.
label='29x90',
rotate='90', # 'Auto', '0', '90', '270'
threshold=70.0, # Black and white threshold in percent.
dither=False,
compress=False,
red=False, # Only True if using Red/Black 62 mm label tape.
dpi_600=False,
hq=True, # False for low quality.
cut=True
)
send(instructions=instructions, printer_identifier=printer, backend_identifier=backend, blocking=True)
По сути, это функция «print_cmd» из файла библиотеки brother_ql «cli.py «