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

Verwenden von Shell-Ordnern in der triShell der triCerat Simplify Suite

by Andreas Fleischmann 1. Juni 2006 18:43

triShell - Terminalsitzung mit Hilfe der triShell mit speziellen Shell-Ordnern.In diesem Artikel wird gezeigt, wie Sie dem Benutzer innerhalb der triShell in der triCerat Simplify Suite spezielle Shell-Ordner (shell folder), wie zum Beispiel den Papierkorb oder Drucker und Faxgeräte auf dem Desktop oder im Starmenü anzeigen.

Die speziellen Shell-Ordner werden bekanntlich von der Explorer.exe angezeigt. Beim Aufruf der Explorer.exe wird standardmäßig immer der Ordner Eigene Dateien inklusive der Explorer-Leiste angezeigt. Wie Sie wahrscheinlich wissen gibt es für die Explorer.exe mehrere Kommandozeilenparamater, um unterschiedliche Explorer-Leisten ein-/auszublenden und Verzeichnisse und Dateien direkt anzusteuern und auszuwählen. Die Kommandozeilenparameter werden im Microsoft KB Artikel Q130510 beschrieben.

Shell-Ordner haben keinen herkömmlichen Verzeichnispfad und lassen sich somit nicht so einfach direkt aufrufen. Shell-Ordner haben eine sog. Namespace GUID, über die sie identifizierbar und somit aufrufbar sind. Die Namespace GUIDs der Shell-Ordner sind in den Tiefen der Registierung zu finden.

Folgender Aufruf auf der Kommandozeile zeigt zum Beispiel den Papierkorb an:
Explorer.exe ::{645FF040-5081-101B-9F08-00AA002F954E}

Für die Konfiguration in der triCerat Simplify Suite bedeutet dies folgendes:

  1. Im Reiter Applications erstellen Sie eine neue Anwendung.
  2. Als Anzeigenamen geben Sie im Feld Display Name den Wert Papierkorb ein.
  3. Im Feld Executable geben Sie den Pfad zur Explorer.exe ein (C:\Windows\Explorer.exe).
  4. Das Feld Working Directory lassen Sie leer.
  5. Das passende Icon finden Sie in der shell32.dll (C:\Windows\system32\shell32.dll).
  6. Im Feld Arguments geben Sie die Namespace GUID ::{645FF040-5081-101B-9F08-00AA002F954E} für den Papierkorb ein.

Konfiguration des Shell-Ordners Papierkorb in der triCerat Simplify Console
Konfiguration des Shell-Ordners Papierkorb in der triCerat
Simplify Console
(zum Vergrößen auf das Bild klicken)

Namespace GUIDs weiterer Shell-Ordner

Shell-Ordner Namespace GUID Icon DLL
Arbeitsplatz ::{20D04FE0-3AEA-1069-A2D8-08002B30309D} shell32.dll
Drucker und Faxgräte ::{2227A280-3AEA-1069-A2DE-08002B30309D} shell32.dll
Eigene Dateien ::{450D8FBA-AD25-11D0-98A8-0800361B1103} shell32.dll
Geplante Task ::{D6277990-4C6A-11CF-8D87-00AA0060F5BF} mstask.dll
Netzwerkumgebung ::{208D2C60-3AEA-1069-A2D7-08002B30309D} shell32.dll
Netzwerkverbindungen ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\
::{21EC2020-3AEA-1069-A2DD-08002B30309D}\
::{7007ACC7-3202-11D1-AAD2-00805FC1270E}
shell32.dll
Papierkorb ::{645FF040-5081-101B-9F08-00AA002F954E} shell32.dll
Scanner und Kameras ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\
::{21EC2020-3AEA-1069-A2DD-08002B30309D}\
::{E211B736-43FD-11D1-9EFB-0000F8757FCD}
wiashext.dll
Schriftarten ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\
::{21EC2020-3AEA-1069-A2DD-08002B30309D}\
::{D20EA4E1-3957-11d2-A40B-0C5020524152}
shell32.dll
Suchergebnisse ::{e17d4fc0-5564-11d1-83f2-00a0c90dc849} shell32.dll
Systemsteuerung ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\
::{21EC2020-3AEA-1069-A2DD-08002B30309D}
shell32.dll
Verwaltung ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\
::{21EC2020-3AEA-1069-A2DD-08002B30309D}\
::{D20EA4E1-3957-11d2-A40B-0C5020524153}
main.cpl

 

Tags: , , , ,

triCerat Simplify Suite