From 2f731e65c56784863ac701add012c80bbebf77f3 Mon Sep 17 00:00:00 2001 From: Sebastian Serfling Date: Mon, 28 Apr 2025 15:45:54 +0200 Subject: [PATCH] Many Changes --- gui.py | 188 +++++++++++++++++++++++++++++++++++++++++++++++ logo.png | Bin 0 -> 17216 bytes pdf_export.py | 197 ++++++++++++++++++++++++++++++-------------------- printer.gif | Bin 0 -> 84265 bytes 4 files changed, 306 insertions(+), 79 deletions(-) create mode 100644 gui.py create mode 100644 logo.png create mode 100644 printer.gif diff --git a/gui.py b/gui.py new file mode 100644 index 0000000..cb42f24 --- /dev/null +++ b/gui.py @@ -0,0 +1,188 @@ +import customtkinter as ctk +import subprocess +import threading +import sys +import os +from PIL import Image, ImageTk +import webbrowser + +class CustomerThinkerApp(ctk.CTk): + def __init__(self): + super().__init__() + + self.title("CustomerThinker PDF Export Tool") + self.geometry("500x500") + self.resizable(False, False) + ctk.set_appearance_mode("System") # "Dark", "Light", "System" + ctk.set_default_color_theme("blue") # Andere Themes: "green", "dark-blue" + + self.script_path = "pdf_export.py" + self.labels_dir = "label" + self.orders_dir = "orders" + + self.frames = [] + self.current_gif_frame = 0 + self.animation_running = False + + self.build_gui() + self.load_gif() + self.update_file_dropdown() + + def build_gui(self): + # Titel + self.title_label = ctk.CTkLabel(self, text="PDF Export Tool", font=ctk.CTkFont(size=24, weight="bold")) + self.title_label.pack(pady=20) + + # Button + self.run_button = ctk.CTkButton(self, text="Alle Aufträge drucken", command=self.run_script) + self.run_button.pack(pady=10) + + # Auswahl: Letzte Labels oder Orders + self.dropdown_select = ctk.CTkComboBox(self, values=["Letzte Labels", "Letzte Orders"], + command=self.update_file_dropdown, width=200) + self.dropdown_select.set("Auswählen") + self.dropdown_select.pack(pady=10) + + # Werte-Dropdown + self.dropdown_values = ctk.CTkComboBox(self, values=[], command=self.file_selected,width=200) + self.dropdown_values.pack(pady=10) + + # Status + self.status_label = ctk.CTkLabel(self, text="", font=ctk.CTkFont(size=16)) + self.status_label.pack(pady=20) + + # Status Animation + self.status_label_logo = ctk.CTkLabel(self, text="") + self.status_label_logo.pack(pady=10) + + # Logo unten rechts + self.logo_image = ctk.CTkImage(Image.open("logo.png"), size=(50, 50)) # Hier dein Logo + self.logo_label = ctk.CTkLabel(self, image=self.logo_image, text="", fg_color="transparent") + self.logo_label.bind("", self.open_link) # Klick-Event + self.logo_label.bind("", self.on_logo_hover) # Hover-Ereignis (Maus über Logo) + self.logo_label.bind("", self.on_logo_leave) # Wenn die Maus das Logo verlässt + self.logo_label.place(x=0, y=0, anchor="se") # Vorläufige Position setzen + + # Configure-Event um das Logo nach dem Rendern richtig zu platzieren + self.bind("", self.update_logo_position) + + def open_link(self, event=None): + webbrowser.open("https://www.itdata-gera.de") # Ändere dies auf die gewünschte URL + + def on_logo_hover(self, event=None): + self.logo_label.configure(cursor="hand2") # Cursor auf Hand setzen, wenn Maus über dem Logo schwebt + + def on_logo_leave(self, event=None): + self.logo_label.configure(cursor="") # Setzt den Cursor zurück, wenn die Maus das Logo verlässt + + def update_logo_position(self, event=None): + # Positioniere das Logo in der unteren rechten Ecke, nachdem das Fenster die endgültige Größe hat + self.logo_label.place(x=self.winfo_width() - 10, y=self.winfo_height() - 10, anchor="se") + + def load_gif(self): + gif_path = "printer.gif" + if not os.path.exists(gif_path): + return + + try: + gif = Image.open(gif_path) + while True: + frame = ImageTk.PhotoImage(gif.copy()) + self.frames.append(frame) + gif.seek(len(self.frames)) + except EOFError: + pass + + def load_files(self, directory): + try: + return [f for f in os.listdir(directory) if os.path.isfile(os.path.join(directory, f))] + except FileNotFoundError: + return [] + + def update_file_dropdown(self, event=None): + selected_option = self.dropdown_select.get() + directory = self.labels_dir if selected_option == "Letzte Labels" else self.orders_dir + files = self.load_files(directory) + + if files: + self.dropdown_values.configure(values=files) + self.dropdown_values.set(files[0]) + else: + self.dropdown_values.configure(values=[]) + self.dropdown_values.set("") + + self.run_button.configure(text="Alle Aufträge drucken", command=self.run_script) + + def file_selected(self, event=None): + selected_file = self.dropdown_values.get() + if not selected_file: + return + selected_folder = self.labels_dir if self.dropdown_select.get() == "Letzte Labels" else self.orders_dir + full_path = os.path.join(selected_folder, selected_file) + + self.run_button.configure(text=f"{selected_file} drucken", command=lambda: self.run_single_file(full_path)) + + def run_script(self): + self.set_status("Alle Aufträge werden gedruckt...", "blue") + self.start_animation() + threading.Thread(target=self.execute_script).start() + + def run_single_file(self, full_path): + filename = os.path.basename(full_path) + self.set_status(f"{filename} wird gedruckt...", "blue") + self.start_animation() + threading.Thread(target=self.execute_single_file, args=(full_path,)).start() + + def execute_script(self): + try: + result = subprocess.run([sys.executable, self.script_path], capture_output=True, text=True) + if result.returncode == 0: + self.set_status("✅ Alle Aufträge wurden gedruckt!", "green") + else: + self.set_status("❌ Fehler beim Ausführen des Skripts.", "red") + self.show_error(result.stderr) + except Exception as e: + self.set_status("❌ Unerwarteter Fehler.", "red") + self.show_error(str(e)) + finally: + self.stop_animation() + + def execute_single_file(self, full_path): + try: + result = subprocess.run([sys.executable, self.script_path, full_path], capture_output=True, text=True) + if result.returncode == 0: + filename = os.path.basename(full_path) + self.set_status(f"✅ {filename} wurde gedruckt!", "green") + else: + self.set_status("❌ Fehler beim Drucken.", "red") + self.show_error(result.stderr) + except Exception as e: + self.set_status("❌ Unerwarteter Fehler.", "red") + self.show_error(str(e)) + finally: + self.stop_animation() + self.run_button.configure(text="Alle Aufträge drucken", command=self.run_script) + + def set_status(self, text, color): + self.status_label.configure(text=text, text_color=color) + + def start_animation(self): + self.animation_running = True + self.animate() + + def stop_animation(self): + self.animation_running = False + + def animate(self): + if self.animation_running and self.frames: + frame = self.frames[self.current_gif_frame] + self.status_label_logo.configure(image=frame) + self.current_gif_frame = (self.current_gif_frame + 1) % len(self.frames) + self.after(30, self.animate) + + def show_error(self, message): + ctk.CTkMessagebox(title="Fehler", message=message, icon="cancel") if hasattr(ctk, "CTkMessagebox") else print(message) + +if __name__ == "__main__": + app = CustomerThinkerApp() + app.mainloop() diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..966881631a906a80c8d5736f761fdee8ff6de5a0 GIT binary patch literal 17216 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

;EtdpW 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 timedelta(days=7): + os.remove(file_path) + print(f"Altes Log gelöscht: {filename}") + +def log_message(message): + """Schreibt eine Nachricht ins Log.""" + print(f"{datetime.now().strftime('%Y-%m-%d %H:%M:%S')} - {message}") + +# Verbesserte Druckfunktion +def print_pdf(file_path, printer_name): + if not os.path.exists(file_path): + log_message(f'Datei nicht gefunden: {file_path}') + return False + + try: + hprinter = win32print.OpenPrinter(printer_name) + hdc = win32ui.CreateDC() + hdc.CreatePrinterDC(printer_name) + hdc.StartDoc(file_path) + + pdf_document = fitz.open(file_path) + printer_size = hdc.GetDeviceCaps(8), hdc.GetDeviceCaps(10) # Horizontale/Vertikale Größe in Pixel + + for page_number in range(len(pdf_document)): + page = pdf_document.load_page(page_number) + + zoom = 3.0 + mat = fitz.Matrix(zoom, zoom) + pix = page.get_pixmap(matrix=mat, alpha=False) + + image = Image.frombytes("RGB", [pix.width, pix.height], pix.samples) + dib = ImageWin.Dib(image) + + scale_x = printer_size[0] / pix.width + scale_y = printer_size[1] / pix.height + scale = min(scale_x, scale_y) + + x_pos = int((printer_size[0] - (pix.width * scale)) // 2) + y_pos = int((printer_size[1] - (pix.height * scale)) // 2) + width = int(pix.width * scale) + height = int(pix.height * scale) + + hdc.StartPage() + try: + dib.draw(hdc.GetHandleOutput(), (x_pos, y_pos, x_pos + width, y_pos + height)) + except Exception as draw_error: + log_message(f"Zeichenfehler: {draw_error}") + dib.draw(hdc.GetHandleOutput(), (0, 0, printer_size[0], printer_size[1])) + hdc.EndPage() + + hdc.EndDoc() + hdc.DeleteDC() + win32print.ClosePrinter(hprinter) + log_message(f"Erfolgreich gedruckt: {file_path}") + return True + + except Exception as e: + log_message(f"Fehler beim Drucken von {file_path}: {str(e)}") + import traceback + traceback.print_exc() + return False + +# Debug-Funktion aktivieren +setup_logging() + +# Einzeldatei-Druck prüfen +if len(sys.argv) > 1: + file_to_print = sys.argv[1] + + if "label" in file_to_print.lower(): + printer = label_printer + else: + printer = order_printer + + log_message(f"Einzeldatei-Modus: {file_to_print} → {printer}") + print_pdf(file_to_print, printer) + sys.exit(0) + +# KEIN Dateiname angegeben → Standard-Workflow (Download, Aufteilen, Drucken) + # Zeitstempel für die Dateien timestamp = datetime.now().strftime('%Y-%m-%d_%H-%M-%S') @@ -37,12 +143,12 @@ if url: file_name = f'{original_storage_path}/original_{timestamp}.pdf' with open(file_name, 'wb') as file: file.write(response.content) - print(f'PDF erfolgreich heruntergeladen: "{file_name}"') + log_message(f'PDF erfolgreich heruntergeladen: "{file_name}"') else: - print(f'Fehler beim Herunterladen. Statuscode: {response.status_code}') + log_message(f'Fehler beim Herunterladen. Statuscode: {response.status_code}') exit(1) else: - print('API-URL nicht in .env gefunden.') + log_message('API-URL nicht in .env gefunden.') exit(1) # Dokument verarbeiten @@ -94,97 +200,30 @@ if order_end_page is not None and order_end_page >= 0: order_doc.insert_pdf(doc, from_page=0, to_page=order_end_page) order_filename = f"{order_storage_path}/order_{timestamp}.pdf" order_doc.save(order_filename) - print(f"Bestellung gespeichert als {order_filename}") + log_message(f"Bestellung gespeichert als {order_filename}") # Labels speichern for label, docs in label_sections.items(): for idx, pdf in enumerate(docs, start=1): filename = f"{label_storage_path}/{label}_label_{idx}_{timestamp}.pdf" pdf.save(filename) - print(f"{label} Label gespeichert als {filename}") - - -# Verbesserte Druckfunktion mit reinen Python-Mitteln -def print_pdf(file_path, printer_name): - if not os.path.exists(file_path): - print(f'Datei nicht gefunden: {file_path}') - return False - - try: - # Drucker initialisieren - hprinter = win32print.OpenPrinter(printer_name) - hdc = win32ui.CreateDC() - hdc.CreatePrinterDC(printer_name) - hdc.StartDoc(file_path) - - # PDF öffnen - pdf_document = fitz.open(file_path) - - # Druckereinstellungen für korrekte Skalierung - printer_size = hdc.GetDeviceCaps(8), hdc.GetDeviceCaps(10) # Horizontale/Vertikale Größe in Pixel - printer_margins = (0, 0) # Keine Ränder - - for page_number in range(len(pdf_document)): - page = pdf_document.load_page(page_number) - - # Höhere Qualität für Labels - zoom = 3.0 # Erhöhter Zoom für bessere Qualität - mat = fitz.Matrix(zoom, zoom) - pix = page.get_pixmap(matrix=mat, alpha=False) - - # Bild vorbereiten - image = Image.frombytes("RGB", [pix.width, pix.height], pix.samples) - dib = ImageWin.Dib(image) - - # Skalierung berechnen, um das ganze Bild einzupassen - scale_x = printer_size[0] / pix.width - scale_y = printer_size[1] / pix.height - scale = min(scale_x, scale_y) - - # Zentrierte Positionierung - x_pos = int((printer_size[0] - (pix.width * scale)) // 2) - y_pos = int((printer_size[1] - (pix.height * scale)) // 2) - width = int(pix.width * scale) - height = int(pix.height * scale) - - # Seite drucken - hdc.StartPage() - try: - dib.draw(hdc.GetHandleOutput(), - (x_pos, y_pos, x_pos + width, y_pos + height)) - except Exception as draw_error: - print(f"Zeichenfehler: {draw_error}") - # Fallback: Einfache Skalierung - dib.draw(hdc.GetHandleOutput(), (0, 0, printer_size[0], printer_size[1])) - hdc.EndPage() - - hdc.EndDoc() - hdc.DeleteDC() - win32print.ClosePrinter(hprinter) - print(f"Erfolgreich gedruckt: {file_path}") - return True - - except Exception as e: - print(f"Fehler beim Drucken von {file_path}: {str(e)}") - import traceback - traceback.print_exc() - return False + log_message(f"{label} Label gespeichert als {filename}") # Druckvorgang -print("\nStarte Druckvorgang:") +log_message("\nStarte Druckvorgang:") # Labels drucken for label in label_sections: for idx, pdf in enumerate(label_sections[label], start=1): label_filename = f"{label_storage_path}/{label}_label_{idx}_{timestamp}.pdf" - print(f"\nDrucke {label} Label {idx}...") + log_message(f"Drucke {label} Label {idx}...") print_pdf(label_filename, label_printer) time.sleep(1) # Kurze Pause zwischen den Druckaufträgen # Bestellung drucken if order_end_page is not None: - print("\nDrucke Bestellung...") + log_message("\nDrucke Bestellung...") order_filename = f"{order_storage_path}/order_{timestamp}.pdf" print_pdf(order_filename, order_printer) -print("\nDruckvorgang abgeschlossen.") \ No newline at end of file +log_message("\nDruckvorgang abgeschlossen.") diff --git a/printer.gif b/printer.gif new file mode 100644 index 0000000000000000000000000000000000000000..ecd6f1eab64297abe33bde9cea30cb6d5c25c285 GIT binary patch literal 84265 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 AxBvhE literal 0 HcmV?d00001