Печать штрих кодов на принтере этикеток
Хочу написать программу, которая будет генерировать штрихкоды из списка серийных номеров, которые будет загружать пользователь, с последующей возможностью печатать получившиеся штрихкоды на принтере этикеток. Написал код, где программа принимает данные от пользователя, генерирует штрихкоды, и сохраняет каждый штрихкод(по отдельности) в папку в формате SVG.
Вопрос - как должен выглядеть последующий этап программы, чтобы принтер этикеток обращался к этим файлам( или к файлу, где сгруппированы все штрихкоды) и выводил один за одним на печать все штрихкоды на принтер этикеток -( условие что одна этикетка - один штрих код). Помогите, плиз, своими соображениями, или литературой по данной теме, или примерами кода.
def butload():
filepath = fd.askopenfilename(
filetypes=[("Text Files", "*.txt"), ("All Files", "*.*")]
)
if not filepath:
return
text_box.delete("1.0", tk.END)
with open(filepath, "r") as input_file:
text = input_file.read()
text_box.insert(tk.END, text)
text_box.configure(state="disabled")
a = text
for b in a.split():
if not os.path.isdir ('barcode'):
os.mkdir('barcode')
code = barcode.get('code128', b)
filename = code.save('barcode\\'+b)
btn3.configure(state=tk.NORMAL)
Ответы (1 шт):
Всё зависит от принтера и в каком режиме он подключен. Если он подключен без драйвера системы печати, то сначала svg переводим в
buff = BytesIO()
cairosvg.svg2png(dpi=203, bytestring=svgdata, write_to=buff)
buff.seek(0)
img = Image.open(buff)
printer.image(img)
где принтер это экземпляр escpos.printer.Usb или подобный
import escpos.printer
printer = escpos.printer.Usb(0x04b8, 0x0202, 0, profile="TM-T88III")
многие модели умеют печатать штрихкоды без перевода в картинку, но практика печати картинкой ещё сохраняется
printer.barcode('1324354657687', 'EAN13', 64, 2, '', '')
https://github.com/python-escpos/python-escpos
Если принтер установлен в систему как принтер, то нужно правильно выставить параметры страницы и печатать как на обычном принтере.