import barcode
from barcode.writer import ImageWriter
from PIL import Image, ImageDraw, ImageFont, ImageTk
import tkinter as tk
def generate_barcodes(telefon_nr, root, entry_var):
# Sprawdzenie, czy ciąg ma 15 cyfr
if len(telefon_nr) == 15 and telefon_nr.isdigit():
img_width = 1600
img_height = 1100
img = Image.new("RGB", (img_width, img_height), "white")
draw = ImageDraw.Draw(img)
font_size = 40
font = ImageFont.truetype("arial.ttf", font_size)
# Generowanie kodu kreskowego dla pierwszych 9 cyfr
pierwsze_9_cyfr = telefon_nr[:9]
code_pierwsze_9 = barcode.get('code128', pierwsze_9_cyfr, writer=ImageWriter())
code_pierwsze_9.save("code_pierwsze_9")
img_pierwsze_9 = Image.open("code_pierwsze_9.png")
img.paste(img_pierwsze_9, (50, (img_height - img_pierwsze_9.size[1]) // 2))
draw.text((50, (img_height - img_pierwsze_9.size[1]) // 2 - 60), "numer telefonu", fill="black", font=font)
# Generowanie kodu kreskowego dla ostatnich 6 cyfr
ostatnie_6_cyfr = telefon_nr[9:]
code_ostatnie_6 = barcode.get('code128', ostatnie_6_cyfr, writer=ImageWriter())
code_ostatnie_6.save("code_ostatnie_6")
img_ostatnie_6 = Image.open("code_ostatnie_6.png")
img.paste(img_ostatnie_6, (img_width - img_ostatnie_6.size[0] - 50, (img_height - img_ostatnie_6.size[1]) // 2))
draw.text((img_width - img_ostatnie_6.size[0] - 50, (img_height - img_ostatnie_6.size[1]) // 2 - 60), "kod odbioru", fill="black", font=font)
img.save("temp_barcode_image.png")
# Otwarcie nowego okna
barcode_window = tk.Toplevel(root)
barcode_window.title("Kody kreskowe")
barcode_window.attributes('-fullscreen', True)
# Wczytanie obrazu z pliku
img = Image.open("temp_barcode_image.png")
tk_img = ImageTk.PhotoImage(img)
# Ustawienie tła
background_label = tk.Label(barcode_window, image=tk_img)
background_label.image = tk_img
background_label.place(relwidth=1, relheight=1)
def on_close():
entry_var.set("") # Wyczyszczenie pola wprowadzania danych po zamknięciu okna z kodami kreskowymi
barcode_window.destroy()
root.after(5000, on_close) # Zamknięcie okna po 15 sekundach
barcode_window.mainloop()
def on_entry_change(entry_var, root, *args):
telefon_nr = entry_var.get()
generate_barcodes(telefon_nr, root, entry_var)
def main():
root = tk.Tk()
root.title("Program kody kreskowe")
root.attributes('-fullscreen', True)
# Przycisk zamykający główne okno programu
close_button = tk.Button(root, text="Zamknij", command=root.destroy)
close_button.place(relx=0.9, rely=0.1, anchor="ne")
# Napis "INPOST" i pole wprowadzania danych
img_width = 100
img_height = 100
img = Image.new("RGB", (img_width, img_height), "yellow")
draw = ImageDraw.Draw(img)
font_size = 40
font = ImageFont.truetype("arial.ttf", font_size)
# Napis "INPOST"
inpost_text = "INPOST"
inpost_text_size = draw.textbbox((0, 0), inpost_text, font=font)
inpost_text_position = ((img_width - inpost_text_size[2]) // 2, 50)
draw.text(inpost_text_position, inpost_text, fill="black", font=font)
# Pole wprowadzania danych
entry_label = tk.Label(root, text="Zeskanuj kod QR:", font=("Arial", 25), bg="white")
entry_label.pack(pady=300)
entry_var = tk.StringVar()
entry = tk.Entry(root, textvariable=entry_var, font=("Arial", 14))
entry.pack(pady=1)
entry.focus_set() # Ustawienie aktywności na polu wprowadzania danych
# Monitorowanie zmian w polu wprowadzania danych
entry_var.trace_add("write", lambda *args: on_entry_change(entry_var, root, *args))
root.mainloop()
if __name__ == "__main__":
main()
Korzystając z serwisu Zleca.pl wyrażasz zgodę na stosowanie plików cookies. Dowiedz się więcej.
X
09.01.2024
Jesteśmy gotowi podjąć się realizacji Państwa zlecenia. Nasza firma CEBO.TECH specjalizuje się w tworzeniu innowacyjnych rozwiązań IT, a proponowane przez Państwa wytyczne są zgodne z naszym zakresem kompetencji. Zapraszamy do kontaktu +48733342278 lub contact@cebo.tech
08.01.2024
Dzień dobry, czy można prosić o więcej informacji na maila: max.guzdziol@gmail.com lub tel: 513176696
300 zł brutto
10.01.2024
Dzień dobry, również poproszę o więcej informacji na temat zlecenia, mail: marika147@op.pl
300 zł brutto