In der IT-Welt mit SINN

Was so läuft ...

Barcode auf Etiketten am Terminal Server mit Labeldrucker

by Andreas Fleischmann 3. Juni 2006 02:33

Drucker der Marke Zebra sind verbreitet Labeldrucker. Oft kommt meist dann ein Druckertreiber von Seagull und das Design-Tool Bar-Tender zum Einsatz. Seagull bietet einen Druckertreiber für Etikettendrucker, um verschiedene Arten von Barcodes zu drucken. Seagull bietet zusätzlich ein grafisches Etiketten-Design-Tool namens „BarTender“, mit dessen Hilfe Etikette, die sowohl Text, Grafiken und Barcodes enthalten, erstellt werden können. BarTender verfügt über Automatisierungsschnittstellen für die Integration mit ERP-Systemen (z.B. SAP) und Datenbanken (z.B. Oracle). BarTender und dessen Automatisierungsschnittstellen sind dabei relative eng mit dem angebotenen Etiketten-Druckertreiber verzahnt, um höchstmögliche Funktionalität und Performance zu bieten.

Mit Hilfe des Seagull Etiketten-Druckertreiber können jedoch auch aus jeglicher Windows-Anwendung heraus Etiketten mit Barcodes gedruckt werden, ohne dass die Windows-Anwendung etwas von Barcodes verstehen muss.
In den Eigenschaften des Etiketten-Druckertreibers existiert dazu eine Art Platzhalter-Schriftart.

Abb 1: Es existiert eine Platzhalter-Schriftart namens „Sample Bar Code Font“, die beim Ausdruck in einem „Code 39“-Barcode resultiert

Diese steht der Windows-Anwendung automatisch zur Verfügung, wenn der Etiketten-Druckertreiber ausgewählt ist und nur dann!!
Es handelt sich somit um eine temporäre Schriftart, die in der Anwendung nur dann im Schriftart-Auswahldialog zur Verfügung steht, wenn ein Drucker ausgewählt wurde, der den Seagull-Etiketten-Druckertreiber verwendet.

Abb 2: Wordpad und die Platzhalter-Schriftart „TSC-Sample Bar Code Font“ an einem Windows Client

Dadurch wird beim Druck der Drucker durch den Treiber angewiesen, jeglichen Text, der mit Hilfe der Platzhalter-Schriftart „formatiert“ wurde, als Barcode auszugeben.

ScrewDrivers ist eine Lösung für Terminalserver und virtuelle Desktops, welche die Drucker, die an einem Windows-Client installiert sind, in einer Terminalsitzung oder einer „published Application“ zur Verfügung stellt, ohne dass, wie herkömmlich, die entsprechenden Druckertreiber auf den Terminalserver installiert sein müssen. Ebenso können auch Drucker von dedizierten Druckservern in einer Terminalsitzung zur Verfügung gestellt werden, ohne  dass die entsprechenden Treiber auf dem Terminalserver installiert werden.
Der abstrakte ScrewDrivers-Druckertreiber wird dabei automatisch am Terminalserver mit den Eigenschaften des Seagull-Etiketten-Druckertreibers „betankt“. Dabei werden all diejenigen Eigenschaften verwendet, die über die Win32-API in der sog. DEVMODE-Struktur zur Verfügung gestellt werden. Die Information über temporäre Schriftarten, wie oben beschrieben, ist darin nicht enthalten.
Aus diesem Grund steht die Platzhalter-Schriftart „TSC-Sample Bar Code Font“ in den Anwendungen am Terminalserver, wenn der Drucker über die ScrewDrivers-Technologie verbunden wurde, nicht zur Verfügung (Abb 3).

Abb 3: Die Platzhalter-Schriftart kann am Terminalserver in Verbindung mit ScrewDrivers nicht zur Verfügung stehen

 

Lösung des Problems

Für dieses Problem gibt es 2 Lösungsmöglichkeiten:

1. Der Seagull-Etiketten-Druckertreiber wird auf dem Terminalserver installiert

Dabei steht der Seagull-Etiketten-Druckertreiber am Terminal Server zur Verfügung und die clientseitigen Drucker werden über die bekannte „Terminal Server Autocreated Printer“-Funktion verbunden. Die ScrewDrivers-Technologie ist dabei außen vor.
Bei wenigen Terminalservern und bei wenigen, verschiedenen Typen von Labeldruckern, die an Windows Clients angeschlossen sind, ist diese Lösungen sehr kostengünstig, da an existierenden Vorlagen und Formularen für den Etikettendruck nichts geändert werden muss.
Steigt die Anzahl der Terminalserver oder die Anzahl der Typen von Labeldrucker, so steigt der Wartungsaufwand linear mit an. Werden Druckserver eingesetzt, weil Thinclients verwendet werden oder aus einem anderen Grund, so sind entsprechende Logonscripts oder eine andere Technologie zu verwendet, damit bestimmte Benutzer in der Terminalsitzung Zugriff auf die Drucker und den Seagull-Etiketten-Druckertreiber bekommen.  Für komplexe „Passthrough“-Szenarien, in denen aus einer Terminalsitzung oder von einem VirtualDesktop aus, eine „published Applictaion“ auf einem zweiten Terminalserver gestartet wird, ist diese Lösung nicht möglich.

2. Eine Windows-Standardschriftart wird als Ersetzungsschriftart im Seagull-Etiketten-Druckertreiber definiert

Seagull hat ihren Etiketten-Druckertreiber wohl weislich eine Schriftartersetzungsfunktion eingebaut, die erlaubt, in Dokumenten der  Terminalserverapplikation eine Windows-eigene Schriftart zu verwenden, die dann clientseitig mit Hilfe der Schriftartersetzung im Seagull-Etiketten-Druckertreiber ersetzt wird und dann als Barcode zum Ausdruck gelangt.

Abb 4: Text, der z.B. in Windows-Schriftart „Comic Sans MS, Normal“ formatiert ist, wird vom
Seagull-Etiketten-Druckertreiber durch die Druckerschriftart namens „TSC-Sample Barcode Font“
ersetzt. Diese wiederum resultiert im Ausdruck in einem „Code 39“-Barcode.

Durch diese Konfiguration des Seagull-Etiketten-Druckertreiber kann jeglicher Labeldrucker, der mit diesem Treiber arbeitet über die ScrewDrivers-Technologie und deren Vorteile in Terminalsitzungen und/oder  „published Applications“ verwendet werden, ohne dass der Seagull-Etiketten-Druckertreiber auf dem Terminalserver oder dem VirtualDesktop installiert werden muss. Sofern bereits entsprechende Vorlagen und Formulare für den Etikettendruck existieren, müssen in diesen die entsprechend formatierten Bereiche der Barcodes mit der jeweils gewünschten Windows-eigenen Ersetzungsschriftart formatiert werden.

 

Tags: , , , , , , , , , , ,

triCerat ScrewDrivers