57 lines
1.9 KiB
Markdown
57 lines
1.9 KiB
Markdown
# LabelPrintAgent
|
|
|
|
Windows-Tray-Anwendung für den späteren Etikettendruck aus JSON-Layouts.
|
|
|
|
## Etappe 1
|
|
|
|
Die erste Etappe enthält das lauffähige Grundgerüst:
|
|
|
|
- .NET-9-Windows-Forms-Projekt
|
|
- Tray-Icon mit Kontextmenü
|
|
- Einstellungsdialog mit Tabs:
|
|
- Allgemein
|
|
- Datenbank
|
|
- Drucker
|
|
- Layout
|
|
- Fehlerhafte Druckaufträge
|
|
- lokale Konfiguration unter `C:\ProgramData\LabelPrintAgent\settings.json`
|
|
- automatische Anlage von `C:\ProgramData\LabelPrintAgent`
|
|
- Layout-Ordner unter `C:\ProgramData\LabelPrintAgent\layouts`
|
|
- Log-Ordner unter `C:\ProgramData\LabelPrintAgent\logs`
|
|
- verschlüsselte Passwortspeicherung per Windows DPAPI
|
|
- Auflistung installierter Windows-Drucker
|
|
- Beispiel-Layout `dymo_57x32_standard`
|
|
- Layout-JSON laden und speichern
|
|
|
|
## Etappe 2
|
|
|
|
Die zweite Etappe ergänzt das Layoutmodell und die JSON-Validierung:
|
|
|
|
- typisierte Layoutklassen für Text, Linie, Rechteck und QR-Code
|
|
- JSON-Deserialisierung anhand der Element-Eigenschaft `type`
|
|
- Validierung des Layoutkopfs und aller Elemente
|
|
- Sammlung aller Validierungsfehler statt Abbruch beim ersten Fehler
|
|
- Anzeige der Validierungsfehler im Layout-Tab
|
|
- Speichern nur bei gültigem Layout
|
|
- formatierte Speicherung des Layout-JSON
|
|
|
|
Noch nicht enthalten sind MySQL-Worker, echtes Drucken, QR-Code-Rendering und die vollständige Rendering-Engine.
|
|
|
|
## Startanleitung
|
|
|
|
1. `LabelPrintAgent.sln` in Visual Studio oder Rider öffnen.
|
|
2. Auf einem Windows-Rechner bauen und starten.
|
|
3. Das Tray-Symbol anklicken oder per Kontextmenü `Einstellungen` öffnen.
|
|
4. Im Tab `Drucker` einen installierten Windows-Drucker auswählen und speichern.
|
|
5. Im Tab `Layout` das Beispiel-Layout prüfen, bearbeiten und speichern.
|
|
|
|
Beim ersten Start werden die Programmdatenordner und das Beispiel-Layout automatisch angelegt.
|
|
|
|
## Spätere Etappen
|
|
|
|
Die SQL-Datei für die spätere Druckwarteschlange liegt bereits unter:
|
|
|
|
```text
|
|
sql/create_label_print_queue.sql
|
|
```
|