change Readme
parent
454af63670
commit
eddd0cc66a
120
README.md
120
README.md
|
|
@ -1,96 +1,116 @@
|
|||
|
||||
# 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.
|
||||
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
|
||||
|
||||
Bevor du das Skript ausführen kannst, stelle sicher, dass du folgende Anforderungen erfüllst:
|
||||
|
||||
### 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)**: Zum Bearbeiten und Verarbeiten der PDF-Datei.
|
||||
- **pywin32**: Für die Kommunikation mit Windows-Druckern.
|
||||
- **Pillow (PIL)**: Für die Bildverarbeitung und das Drucken von PDFs.
|
||||
- **python-dotenv**: Zum Laden der Umgebungsvariablen aus einer `.env`-Datei.
|
||||
- `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 folgendem Befehl:
|
||||
Installiere die Abhängigkeiten mit:
|
||||
|
||||
```bash
|
||||
pip install requests PyMuPDF pywin32 Pillow python-dotenv
|
||||
pip install requests PyMuPDF pywin32 Pillow
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2. **Druckertreiber**
|
||||
Das Skript erfordert, dass auf dem Ziel-Windows-Computer die Druckertreiber für die Drucker, die im Skript verwendet werden (z. B. für Labels und Bestellungen), installiert sind. Die Drucker sollten in Windows richtig konfiguriert sein und ihren Namen in der `.env`-Datei definiert haben.
|
||||
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. **Erstellen der `.env`-Datei**
|
||||
Erstelle eine `.env`-Datei im gleichen Verzeichnis wie das Skript. Diese Datei sollte die folgenden Variablen enthalten:
|
||||
---
|
||||
|
||||
```env
|
||||
API_URL=deine_api_url
|
||||
LABEL_DRUCKER=Name_des_Label_Druckers
|
||||
ORDER_DRUCKER=Name_des_Bestell_Druckers
|
||||
### 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
|
||||
```
|
||||
|
||||
Ersetze `deine_api_url` mit der URL der API, die das PDF zur Verfügung stellt, und die Druckernamen mit den tatsächlichen Namen der Drucker, die du verwenden möchtest.
|
||||
#### 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 führt die folgenden Schritte aus:
|
||||
Das Skript arbeitet in folgenden Schritten:
|
||||
|
||||
1. **PDF herunterladen**: Eine PDF wird von einer externen API basierend auf der URL in der `.env`-Datei heruntergeladen.
|
||||
2. **PDF-Verarbeitung**: Die PDF wird in Abschnitte unterteilt, die auf bestimmte Versanddienstleister (z. B. DHL, DPD, UPS) basieren. Die Abschnitte werden in separaten PDF-Dateien gespeichert.
|
||||
3. **Speichern der PDFs**:
|
||||
- Die Bestellung wird in einer Datei im Verzeichnis `./orders` gespeichert.
|
||||
- Versandlabels werden im Verzeichnis `./label` gespeichert.
|
||||
4. **Drucken der PDFs**:
|
||||
- Jedes Versandlabel wird auf dem Drucker für Labels (`LABEL_DRUCKER`) und jede Bestellung auf dem Drucker für Bestellungen (`ORDER_DRUCKER`) ausgedruckt.
|
||||
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 alle Anforderungen erfüllt sind (Python-Abhängigkeiten installiert, Druckertreiber vorhanden, `.env`-Datei konfiguriert).
|
||||
2. Führe das Skript aus:
|
||||
1. Stelle sicher, dass die Registry-Werte korrekt gesetzt sind.
|
||||
2. Führe das Skript einfach per:
|
||||
|
||||
```bash
|
||||
python pdf_export.py
|
||||
```
|
||||
|
||||
Das Skript lädt das PDF, verarbeitet es, speichert die separaten Abschnitte und druckt sie auf den entsprechenden Druckern.
|
||||
aus.
|
||||
|
||||
Optional kannst du auch eine PDF-Datei direkt übergeben, um nur zu drucken:
|
||||
|
||||
```bash
|
||||
python pdf_export.py pfad\zu\deiner_datei.pdf
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Erstellen einer ausführbaren `.exe`-Datei
|
||||
|
||||
Um das Skript als ausführbare `.exe`-Datei für Windows zu erstellen, kannst du **PyInstaller** verwenden:
|
||||
|
||||
1. Installiere PyInstaller:
|
||||
Mit **PyInstaller** kannst du eine `.exe` erstellen:
|
||||
|
||||
```bash
|
||||
pip install pyinstaller
|
||||
pyinstaller --onefile pdf_export.py
|
||||
```
|
||||
|
||||
2. Erstelle die `.exe`-Datei:
|
||||
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**.
|
||||
|
||||
```bash
|
||||
pyinstaller --onefile --add-data "path o\your\envile;." --add-data "path o\your\label_printer_drivers;." pdf_export.py
|
||||
```
|
||||
|
||||
- `--onefile`: Erstellt eine einzelne `.exe`-Datei.
|
||||
- `--add-data`: Fügt die `.env`-Datei und Druckertreiber zum Paket hinzu.
|
||||
|
||||
3. Die erstellte `.exe`-Datei findest du im `dist`-Ordner. Kopiere sie zusammen mit der `.env`-Datei und den notwendigen Druckertreibern auf den Ziel-Windows-PC.
|
||||
|
||||
### Wichtige Hinweise
|
||||
|
||||
- Das Skript benötigt eine funktionierende Internetverbindung, um die PDF von der API herunterzuladen.
|
||||
- Stelle sicher, dass die Drucker korrekt konfiguriert sind und über die entsprechenden Druckertreiber verfügen.
|
||||
- Du kannst das Skript jederzeit anpassen, um weitere Versanddienstleister zu unterstützen oder die Verarbeitung nach deinen Bedürfnissen zu ändern.
|
||||
---
|
||||
|
||||
## Fehlerbehebung
|
||||
|
||||
- **Drucker wird nicht gefunden**: Überprüfe, ob der Druckername in der `.env`-Datei korrekt ist und der Drucker ordnungsgemäß installiert ist.
|
||||
- **PDF wird nicht heruntergeladen**: Stelle sicher, dass die API-URL korrekt in der `.env`-Datei angegeben ist und die API verfügbar ist.
|
||||
- **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 lizenziert. Siehe die [LICENSE](LICENSE)-Datei für Details.
|
||||
Dieses Projekt ist unter der MIT-Lizenz veröffentlicht. Siehe die [LICENSE](LICENSE)-Datei für Details.
|
||||
|
|
|
|||
Loading…
Reference in New Issue