Initial LabelPrintAgent scaffold
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
# LabelPrintAgent
|
||||
|
||||
Windows-Tray-Anwendung zum Rendern und Drucken von Etiketten aus JSON-Layouts.
|
||||
|
||||
## Stand
|
||||
|
||||
Der erste lauffähige Schritt enthält:
|
||||
|
||||
- .NET-9-Windows-Forms-Projekt mit Tray-Icon
|
||||
- Einstellungsdialog mit Tabs für Allgemein, Datenbank, Drucker, Layout und Fehlerjobs
|
||||
- lokale Konfiguration unter `C:\ProgramData\LabelPrintAgent\settings.json`
|
||||
- verschlüsselte Passwortspeicherung per Windows DPAPI
|
||||
- Druckerauswahl über installierte Windows-Drucker
|
||||
- Layout-JSON unter `C:\ProgramData\LabelPrintAgent\layouts`
|
||||
- Beispiel-Layout `dymo_57x32_standard`
|
||||
- Rendering mit 300 dpi als Bitmap
|
||||
- Vorschau und Testdruck über `PrintDocument`
|
||||
- Serilog-Dateilogs unter `C:\ProgramData\LabelPrintAgent\logs`
|
||||
- vorbereiteter MySQL-Worker ohne automatischen Retry
|
||||
|
||||
## Öffnen und Starten
|
||||
|
||||
1. `LabelPrintAgent.sln` in Visual Studio oder Rider öffnen.
|
||||
2. Auf einem Windows-Rechner bauen und starten.
|
||||
3. Tray-Symbol anklicken, um die Einstellungen zu öffnen.
|
||||
4. Im Tab `Drucker` den Dymo LabelWriter auswählen.
|
||||
5. Im Tab `Layout` das Beispiel-Layout öffnen, `Vorschau` klicken und danach `Testdruck`.
|
||||
|
||||
## Datenbank
|
||||
|
||||
Die Tabelle kann mit folgendem Skript angelegt werden:
|
||||
|
||||
```sql
|
||||
sql/create_label_print_queue.sql
|
||||
```
|
||||
|
||||
Der Worker lädt nur Jobs mit `status = 'pending'`. Vor dem Druck wird der Job auf `printing` gesetzt. Bei Erfolg setzt er `printed`, `printed_at` und `printer_name`. Bei Fehlern setzt er `error`, speichert `error_message` und erhöht `attempts`.
|
||||
|
||||
Fehlerhafte Jobs werden nicht automatisch wiederholt. Im Tab `Fehlerhafte Druckaufträge` können sie manuell erneut auf `pending` gesetzt oder als `deleted` markiert werden.
|
||||
|
||||
## Layout-Platzhalter
|
||||
|
||||
Text- und QR-Werte unterstützen Platzhalter aus `payload_json`:
|
||||
|
||||
```text
|
||||
{titel}
|
||||
{nummer}
|
||||
{datum:dd.MM.yyyy}
|
||||
{menge:0.00}
|
||||
```
|
||||
|
||||
Formatangaben werden über C#-Formatstrings ausgewertet.
|
||||
Reference in New Issue
Block a user