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
Etappe 3
Die dritte Etappe ergänzt die Rendering-Engine und die Vorschau im Layout-Tab:
- Bitmap-Rendering mit 300 dpi
- Text, Linien, Rechtecke und QR-Codes
- Platzhalterersetzung wie
{titel},{datum:dd.MM.yyyy}und{menge:0.00} - automatische Beispiel-Daten für Vorschauen
- AutoShrink für Textfelder
- Warnungen, wenn Platzhalter fehlen oder Text nicht vollständig passt
Eine Vorschau erzeugst du im Tab Layout mit dem Button Vorschau. Zuerst wird das JSON validiert, dann wird das Etikett mit folgenden Beispiel-Daten gerendert:
{
"titel": "Beleg privat",
"beschreibung": "Dokument 2026-000123",
"nummer": "2026-000123",
"datum": "2026-05-07",
"menge": 42.5,
"qr": "bjoernprivat 0000123"
}
Etappe 4
Die vierte Etappe ergänzt den Testdruck über installierte Windows-Drucker:
- Druckerliste mit Standarddrucker-Erkennung
- Prüfung, ob der konfigurierte Drucker noch vorhanden ist
- Testdruck im Tab
Drucker - Testdruck im Tab
Layoutdirekt aus dem aktuell bearbeiteten JSON - Ausgabe des gerenderten Bitmaps über
System.Drawing.Printing.PrintDocument - benutzerdefiniertes Papierformat aus dem Layout, beim Beispiel
57 x 32 mm - keine zusätzlichen Druckränder; der Layout-Rand steckt bereits im gerenderten Bitmap
Für den Dymo LabelWriter muss der Drucker in Windows bereits als normaler Windows-Drucker eingerichtet sein. Stelle im Dymo-Treiber möglichst ebenfalls das Etikettenformat 57 x 32 mm bzw. das passende Dymo-Label ein. Die App sendet ein fertiges Bild an den Windows-Drucker; es wird kein ZPL, EPL oder TSPL verwendet.
Einen Testdruck machst du so:
- Im Tab
Druckerden Dymo LabelWriter auswählen. Speichernklicken.Testdruckklicken, um das ausgewählte Beispiel-Layout zu drucken.- Alternativ im Tab
Layoutdas JSON bearbeiten und dortTestdruckklicken.
Typische Fehler:
- Falscher Drucker gewählt: im Tab
Druckerden Dymo LabelWriter auswählen. - Falsches Etikettenformat im Treiber: im Windows-Druckertreiber
57 x 32 mmbzw. das passende Label einstellen. - Ausdruck zu groß oder zu klein: prüfen, ob Treiber-Skalierung deaktiviert ist und das Layout
57 x 32 mmverwendet. - Etikett wird gedreht: Treiber-Orientierung und Layout-Orientation
landscapeprüfen.
Noch nicht enthalten sind MySQL-Worker und automatische Datenbankabfrage.
Startanleitung
LabelPrintAgent.slnin Visual Studio oder Rider öffnen.- Auf einem Windows-Rechner bauen und starten.
- Das Tray-Symbol anklicken oder per Kontextmenü
Einstellungenöffnen. - Im Tab
Druckereinen installierten Windows-Drucker auswählen und speichern. - Im Tab
Layoutdas Beispiel-Layout prüfen, bearbeiten und speichern. - Im Tab
LayoutoderDruckereinen Testdruck auslösen.
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:
sql/create_label_print_queue.sql