Go to file
Sebastian Serfling 4f49e34ca9 change Readme 2025-04-29 12:13:44 +02:00
.idea First Upload 2025-04-25 10:53:10 +02:00
original First Upload 2025-04-25 10:51:55 +02:00
.env First Upload 2025-04-25 10:51:55 +02:00
README.md change Readme 2025-04-29 10:02:20 +02:00
gui.py change Readme 2025-04-29 12:13:44 +02:00
logo.png Many Changes 2025-04-28 15:45:54 +02:00
pdf_export.py change Readme 2025-04-29 12:13:44 +02:00
printer.gif Many Changes 2025-04-28 15:45:54 +02:00
printer.ico change Readme 2025-04-29 12:13:44 +02:00
reg_check.py add Regestriy Set for Values 2025-04-29 10:00:31 +02:00

README.md

PDF Export und Druckskript

Dieses Python-Skript lädt eine PDF-Datei von einer externen API herunter, verarbeitet die PDF, teilt sie in Abschnitte (z.B. für verschiedene Versanddienstleister wie DHL, DPD, UPS), speichert die getrennten Abschnitte und druckt sie auf vordefinierten Druckern. Das Skript ist darauf ausgelegt, Bestellungen und Versandlabels automatisch zu verarbeiten und zu drucken.


Anforderungen

1. Python und Bibliotheken

Das Skript verwendet mehrere Python-Bibliotheken, die du zuerst installieren musst:

  • requests: Zum Herunterladen der PDF von der API
  • PyMuPDF (fitz): Für das Bearbeiten und Verarbeiten von PDFs
  • pywin32: Für die Kommunikation mit Windows-Druckern
  • Pillow (PIL): Für Bildverarbeitung und das Drucken
  • pyinstaller (optional): Zum Erstellen einer .exe-Datei

Installiere die Abhängigkeiten mit:

pip install requests PyMuPDF pywin32 Pillow

2. Druckertreiber

Die verwendeten Drucker müssen unter Windows installiert und korrekt benannt sein. Stelle sicher, dass die Namen exakt mit denen in der Windows-Gerätesteuerung übereinstimmen.


3. Konfiguration über die Windows-Registry

Die Konfiguration (API-URL, Druckernamen) erfolgt nicht mehr über eine .env-Datei, sondern über die Registry unter folgendem Pfad:

HKEY_CURRENT_USER\Software\PDFExporter

Benötigte Einträge:

Schlüsselname Bedeutung
APIKey Die URL der PDF-API
LabelPrinter Name des Druckers für Versandlabels
OrderPrinter Name des Druckers für Bestellungen

Beispiel:

Du kannst die Konfiguration über ein begleitendes GUI-Tool setzen oder manuell über regedit.exe.

Automatischer Registry-Check:

Das Skript prüft beim Start, ob alle drei Registry-Werte vorhanden sind. Falls nicht, wird ein Hinweis ausgegeben und das Skript beendet sich automatisch.


Funktionsweise

Das Skript arbeitet in folgenden Schritten:

  1. PDF herunterladen: Holt eine PDF-Datei von der API-URL aus der Registry.
  2. PDF-Verarbeitung: Trennt die PDF-Datei nach erkannten Label-Abschnitten (z.B. DHL, DPD, UPS).
  3. Dateien speichern:
    • Bestellungen im Verzeichnis ./orders
    • Versandlabels im Verzeichnis ./label
  4. PDFs drucken:
    • Labels → LabelPrinter
    • Bestellungen → OrderPrinter

Verwendung

  1. Stelle sicher, dass die Registry-Werte korrekt gesetzt sind.
  2. Führe das Skript einfach per:
python pdf_export.py

aus.

Optional kannst du auch eine PDF-Datei direkt übergeben, um nur zu drucken:

python pdf_export.py pfad\zu\deiner_datei.pdf

Erstellen einer ausführbaren .exe-Datei

Mit PyInstaller kannst du eine .exe erstellen:

pip install pyinstaller
pyinstaller --onefile pdf_export.py

Die .exe findest du anschließend im dist-Ordner. Sie kann auf jedem Windows-PC mit korrekt gesetzter Registry verwendet werden eine .env-Datei ist nicht mehr notwendig.


Fehlerbehebung

  • Fehlende Registry-Einträge
    → Öffne die GUI-Konfiguration oder setze die Werte manuell in HKEY_CURRENT_USER\Software\PDFExporter.

  • Drucker wird nicht gefunden
    → Stelle sicher, dass der Druckername exakt mit dem Windows-Namen übereinstimmt.

  • PDF wird nicht heruntergeladen
    → Prüfe die API-URL in der Registry und deine Internetverbindung.


Lizenz

Dieses Projekt ist unter der MIT-Lizenz veröffentlicht. Siehe die LICENSE-Datei für Details.