© StonePictures/Shutterstock.com
Praktische Anwendung des Dymo LabelWriter in .NET

Labeldruck leicht gemacht


Egal ob E-Commerce oder Labor-Container-Labeling: Die Labeldrucker aus dem Hause Dymo bieten eine Option, die sich in .NET programmieren lässt. Neben dem einfachen Handling angesichts der fehlenden Tinte – Dymo arbeitet mit Thermodruckverfahren – spricht für die Geräte, dass das Zerschneiden der Labels im Allgemeinen entfällt.

Die manuelle Labelerzeugung kommt im Allgemeinen recht spontan zum Entwickler: Eine Stanley-Dekade oder einige Pakete müssen etikettiert werden. Also greift man fix zu Stift und Schere. Was anfangs gut funktioniert, ist über kurz oder lang allerdings nicht skalierbar, da die Labels nicht automatisch entstehen. Das Unternehmen Dymo bietet mit seinen LabelWritern seit längerer Zeit eine Gruppe von automatisierten Drucksystemen an, die auf die Erzeugung anheftbarer Labels optimiert sind.

Achtung, Verbrauchsmaterial!

Da Dymo auf Thermodruckprozesse setzt, müssen Sie darauf achten, dass nicht jedes beliebige Etikett mit dem Drucker verwendbar ist.

Welche Hardware verwenden?

Füttert man Amazon mit dem String „LabelWriter“, bekommt man Dutzende von Geräten angeboten – der Preis liegt im Bereich von etwa dreißig bis mehreren Hundert Euro. Dymo zeigt sich im Bereich der Hardwareunterstützung des SDKs von der unklaren Seite. In der Dokumentation [1] findet sich nur die folgende, vergleichsweise lapidare Aussage: „Printing support for the full range of Dymo printers, including the LabelWriter 450 series, the 4XL, the LabelWriter Wireless, the LabelManager 500TS, 420P, 280, PnP and the MobileLabeler label maker.

Der Autor dieser Zeilen wird in den folgenden Schritten mit einem LabelWriter 450 Turbo arbeiten. Wer das .NET SDK unter Windows nutzen möchte, besucht im ersten Schritt die Webseite [2], wo er „Dymo Connect for Desktop“ in Version 1.3.1 herunterlädt und wie jede andere Windows-Software installiert. Wird die Kommunikation zwischen Drucker und Workstation über USB 3.0 abgewickelt, muss das unter [3] bereitstehende Firmware-Upgrade für den Drucker installiert werden. Nach dem erfolgreichen Abarbeiten des unter [4] verfügbaren SDK-Installationsassistenten ist auf jeden Fall ein Reboot der Workstation erforderlich, um die Paketcaches des Betriebssystems zu aktualisieren. Im Rahmen seines Starts versucht der Installationsassistent, mehrere Versionen der Visual-C++-Runtime herunterzuladen, scheitert allerdings bei der Bereitstellung. Diesen Fehler können Sie ignorieren und mit der Installation des Hauptprogramms fortschreiten.

In der Welt der Dymo-Labelprinter gibt es seit längerer Zeit zwei konkurrierende Entwicklungsumgebungen. Dies zeigt sich auf unserem Rechner unter anderem dadurch, dass wir zwei separate Ordner mit Codebeispielen vorfinden:

  • C:\Users\tamha\Documents\Dymo Label v.8 SDK\DLS SDK\Samples\

  • C:\Users\tamha\Documents\Dymo Label v.8 SDK\Dymo Label Framework\Samples

Das DLS-SDK ist die ältere der beiden Programmierumgebungen, die näher an der Hardware ist. In ihr gibt es wiederum ein High-Level- und ein Low-Level-API, die sich nicht wirklich grün sind. Andererseits bekommt das DLS-SDK häufige Updates und funktioniert auch mit aktuellen Versionen der Labelsoftware problemlos. Wir werden in den folgenden Schritten schon aus diesem Grund mit dem DLS-SDK arbeiten und das Framework nur kurz erwähnen. Aufgrund dieser für Entwickler nur wenig angenehmen Situation sah sich Dymo vor einigen Jahren dazu veranlasst, mit dem Dymo Label Framework eine neuartige Programmierschnittstelle zu kreieren. Neben der hier vorgeführten Verwendung mit .NET-Sprachen ist das System auch für JavaScript geeignet – es ist also auch erlaubt, den Labeldruck aus dem Browser heraus anzuwerfen. Ein Blick auf NuGet reicht aus, um sich davon zu überzeugen, dass Dymo das Framework für .NET-Entwickler nicht mehr forciert. Halbwegs aktuelle Versionen des Produkts funktionieren unter Windows 10 sogar gar nicht mehr.

Beginn der Gefechte

Für erste Gehversuche bietet sich das unter [5] bereitstehende GitHub-Repository an, aus dem wir nach dem Gesamtdownload das Verzeichnis DCD-SDK-Sample-master extrahieren. In ihm finden wir dann die Solution-Datei DymoConnectSampleWPF.sln, die sich in Visual Studio 2017 öffnen und ausführen lässt. Das ist für uns vor allem deshalb wichtig, weil ein erfolgreicher Start der in Abbildung 1 gezeigten Applikation das Überprüfen der Arbeitsumgebung erlaubt. Über die Combobox unten links können verbundene Drucker enumeriert werden. Ein nicht erfolgreicher Start der Gesamtapplikation weist auf fehlende Assemblies hin.

hanna_dymo_1.tif_fmt1.jpgAbb. 1: Der LabelWriter des Autors wurde erkannt

Dymo realisiert das .NET-Beispiel unter konsequenter Anwendung der Data-Binding-Regeln. In der XAML-Datei finden wir folgende Deklaration der für die Druckerauswahl verantwortlichen Combobox:

<ComboBox ItemsSource="{Binding Printers}" SelectedItem="{Binding SelectedPrinter, Mode=OneWayToSource}" DisplayMemberPath="Name" ...

Die Implementierung der Datenquelle im Code-Behind erfolgt dann über ein IEnumerable:

public IEnumerable<DymoSDK.Interfaces.IPrinter> Printers
...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang