updated for the start

This commit is contained in:
2025-06-12 16:46:15 +03:00
commit c1bedf0534
4 changed files with 77 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
label/

62
app.py Normal file
View File

@@ -0,0 +1,62 @@
import tkinter as tk
from tkinter import simpledialog, messagebox
from PIL import Image, ImageTk
import barcode
from barcode.writer import ImageWriter
import cups
import os
def get_printers():
conn = cups.Connection()
return list(conn.getPrinters().keys())
def print_label(printer_name, text):
# Generate barcode image
CODE128 = barcode.get_barcode_class('code128')
code = CODE128(text, writer=ImageWriter())
filename = code.save('label_barcode')
# Create label image with text and barcode
barcode_img = Image.open(filename + '.png')
label_img = Image.new('RGB', (barcode_img.width, barcode_img.height + 40), 'white')
label_img.paste(barcode_img, (0, 0))
# Add text below barcode
from PIL import ImageDraw, ImageFont
draw = ImageDraw.Draw(label_img)
font = ImageFont.load_default()
w, h = draw.textsize(text, font=font)
draw.text(((barcode_img.width - w) // 2, barcode_img.height + 10), text, fill='black', font=font)
label_img.save('final_label.png')
# Print using CUPS
conn = cups.Connection()
conn.printFile(printer_name, 'final_label.png', "Label Print", {})
os.remove(filename + '.png')
os.remove('final_label.png')
def main():
root = tk.Tk()
root.withdraw()
printers = get_printers()
if not printers:
messagebox.showerror("Error", "No printers found.")
return
printer = simpledialog.askstring("Printer", f"Available printers:\n{printers}\nEnter printer name:")
if printer not in printers:
messagebox.showerror("Error", "Invalid printer selected.")
return
text = simpledialog.askstring("Label Text", "Enter text for the label:")
if not text:
messagebox.showerror("Error", "No text entered.")
return
print_label(printer, text)
messagebox.showinfo("Done", "Label sent to printer.")
if __name__ == "__main__":
main()

11
how_to.txt Normal file
View File

@@ -0,0 +1,11 @@
install
sudo apt-get install libcups2-dev
create venv or install with --breack-system-pakage
python -m venv label
pip install -r requirements.txt

3
requirements.txt Normal file
View File

@@ -0,0 +1,3 @@
python-barcode
pillow
pycups