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 Layout direkt 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:

  1. Im Tab Drucker den Dymo LabelWriter auswählen.
  2. Speichern klicken.
  3. Testdruck klicken, um das ausgewählte Beispiel-Layout zu drucken.
  4. Alternativ im Tab Layout das JSON bearbeiten und dort Testdruck klicken.

Typische Fehler:

  • Falscher Drucker gewählt: im Tab Drucker den Dymo LabelWriter auswählen.
  • Falsches Etikettenformat im Treiber: im Windows-Druckertreiber 57 x 32 mm bzw. das passende Label einstellen.
  • Ausdruck zu groß oder zu klein: prüfen, ob Treiber-Skalierung deaktiviert ist und das Layout 57 x 32 mm verwendet.
  • Etikett wird gedreht: Treiber-Orientierung und Layout-Orientation landscape prüfen.

Noch nicht enthalten sind MySQL-Worker und automatische Datenbankabfrage.

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.
  6. Im Tab Layout oder Drucker einen 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
S
Description
No description provided
Readme 273 KiB
2026-05-31 20:21:53 +00:00
Languages
C# 100%