3.5 KiB
LabelPrintAgent
Windows-Tray-Anwendung zum Rendern und Drucken von Etiketten über installierte Windows-Drucker, z. B. einen Dymo LabelWriter.
Aktueller Stand
Der Agent arbeitet jetzt mit lokalen LabelTemplates in C:\ProgramData\LabelPrintAgent\settings.json.
Ein Queue-Job enthält nur noch:
barcode_template_idpayload_json
Die alte Zuordnung über layout_key gibt es nicht mehr. Stattdessen gilt:
label_print_queue.barcode_template_id
-> lokales LabelTemplate im LabelPrintAgent
-> darin enthaltenes Layout rendern
Die Tabelle barcode_templates wird nicht verändert. Sie bleibt nur die fachliche Referenz für die barcode_template_id.
LabelTemplates
Ein lokales LabelTemplate enthält:
barcodeTemplateIdnamegetNumberUrlnumberPrintedUrlreservedNumberPayloadKeyqrTemplatelayout
Das Layout liegt vollständig eingebettet im Template. Es gibt keine separate Layout-Datei und keinen layoutKey mehr.
Nummernserver
getNumberUrl wird per HTTP GET aufgerufen und gibt Plain Text zurück, z. B.:
123
Der Nummernserver liefert keine führenden Nullen. Die Datenbank speichert reserved_number als BIGINT, also z. B. 123.
Führende Nullen entstehen nur über Formatierung im Template:
{reservedNumber:0000000} -> 0000123
{nummer:0000000} -> 0000123
Nach erfolgreichem Windows-Druck wird numberPrintedUrl aufgerufen. Erst wenn diese Bestätigung erfolgreich war, darf der Job als printed markiert werden.
Wenn der Druck erfolgreich war, aber numberPrintedUrl fehlschlägt, bleibt reserved_number erhalten und der Job geht auf error. Beim erneuten Drucken wird dieselbe Nummer wiederverwendet; es wird keine neue Nummer reserviert.
Payload-Erweiterung
Vor dem Rendern wird payload_json erweitert:
reservedNumber- der konfigurierte
reservedNumberPayloadKey, z. B.nummer qr, wennqrTemplategesetzt istjobIdbarcodeTemplateId
Beispiel:
{
"reservedNumber": 123,
"nummer": 123,
"qr": "bjoernprivat 0000123"
}
Oberfläche
Im Einstellungsdialog gibt es den Tab Label-Templates.
Dort kannst du:
- Templates anlegen
- Templates löschen
barcodeTemplateIdbearbeiten- Nummernserver-URLs bearbeiten
- QR-Template bearbeiten
- eingebettetes Layout-JSON bearbeiten
- validieren
- Vorschau erzeugen
- Testdruck auslösen
Die Vorschau verwendet eine Dummy-Nummer 123 und reserviert keine Nummer beim Nummernserver.
Dymo-Testdruck
Für den Dymo LabelWriter muss der Drucker in Windows als normaler Drucker eingerichtet sein. Stelle im Dymo-Treiber möglichst das passende Etikettenformat 57 x 32 mm ein.
Testdruck:
- Im Tab
Druckerden Dymo LabelWriter auswählen. Speichernklicken.- Im Tab
Label-Templatesein Template auswählen. Vorschauprüfen.Testdruckklicken.
Typische Fehler:
- Falscher Drucker gewählt.
- Falsches Etikettenformat im Dymo-Treiber.
- Treiber skaliert auf A4/Letter.
- Etikett ist gedreht: Dymo-Treiber-Labelgröße und physische Orientierung prüfen.
Datenbank
Die SQL-Datei liegt unter:
sql/create_label_print_queue.sql
Beispiel-Insert:
INSERT INTO label_print_queue
(barcode_template_id, payload_json, status)
VALUES
(
1,
JSON_OBJECT(
'titel', 'Beleg privat',
'beschreibung', 'Tankbeleg',
'datum', '2026-05-07'
),
'pending'
);
Noch offen
Der automatische MySQL-Worker ist noch nicht aktiv verdrahtet. Die dafür benötigten Modell-, Repository-, Nummernserver- und Druckprozessor-Klassen sind vorbereitet.