Wie funktioniert Slimprinter?
Die wesentliche Grundlage für das Zusammenspiel von Terminalserver und
Clientcomputer bilden die virtuellen Kanäle (virtual channels) des rdp-Protokolls
von Microsoft.
Auf der Seite des Terminalservers läuft eine Dienstkomponente, welche mit einem
Prozess (Sessionserver) via Loopback per TCP/IP kommuniziert und in jeder
Session als eine Instanz gestartet wird. Der Sessionserver stellt das
serverseitige Ende eines virtuellen Kanals dar.
(Diese Komponenten werden durch den Serverinstaller auf em Server installiert)
Auf der Clientseite bildet eine DLL (Slimprin.dll) das andere Ende des
virtuellen Kanals. Diese DLL wird beim Ausführen des Terminalienstclients
(mstsc.exe) automatisch geladen und an die mstsc.exe gebunden.
(Der Clientinstaller stellt die benötigten Komponenten bereit)

Bei dem Aufbau einer rdp-Verbindung laufen folgende Vorgänge ab:
- Auf dem Client wird der Terminalserviceclient gestartet und die DLL Slimprin.dll
an diesen gebunden. Die Anmeldemaske erscheint und nach erfolgreicher
Authentifizierung wird auf dem Terminalserver die Session gestartet.
- Auf dem Terminalserver wird in der erstelleten Sesssion der Sessionserver
gestartet. Der Sessionserver meldet sich am Serverdienst Slimprinter an. Steht
keine freie Clientlizenz zur mehr zur Verfügung, wird der Sessionserver mit
einer Meldung innerhalb der Session beendet. Ist der Serverdienst nicht
erreichbar, wird der Sessionserver ebenfalls mit einer entsprechenden Meldung
beendet.
- Der Sessionserver versucht über en virtuellen Kanal eine Init-Sequenz. an die
Clientdll zu senden. Wird diese Sequenz von der Clientdll nicht beantwortet,
wird der Sessionserver ohne jede Meldung beendet. Dadurch ist sichergestellt,
dass Clients ohne Slimprinter-Installation in wie bisher gewohnter Art
weiterarbeiten.
- Der Sessionserver fordert die Druckerkonfiguration des Clients an. Es werden
alle für Slimprinter aktivierten Drucker (s.u. Clienteinrichtung) mit ihren am
Client vorhandenen Einstellungen übermittelt.
- Der Sessionserver sendet an den Slimprinterdienst die Aufforderung die Drucker
mit der gerade empfangenen Konfiguration zu erstellen.
- Der Slimprinterdienst erstellt die angeforderten Drucker.
- Die Initialisierung von Slimprinter ist abgeschlossen.
Wird ein Druckauftrag an einen erstellten Slimprinterdrucker gesendet, ist
folgender Ablauf zu verfolgen:
- Der Druckauftrag wird vom Slimprinterdrucker gespoolt.
- Der Sessionserver wird über den anstehenden Spoolauftrag informiert. Der
Sessionserver sendet die Initialiserung für den äquivalenten Clientdrucker. Das
serverseitige Spoolfile wird komprimiert und via virtuellen Kanal zur Clientdll
übertragen und von dieser dort dekomprimiert.
- Die Clientdll startet einen Druckthread und meldet dem Sessionserver wieder
Bereitschaft (Für die Dauer dieses Vorgangs ist die Clientdll zum Sessionserver
hin geblockt).
- Der Sessionserver gibt daraufhin den Befehl zum Löschen des serverseitigen
Druckauftrags an den Slimprinterdienst.
- Der Slimprinterdienst löscht den Druckjob.
Was macht der Druckthread?
- Parameter der Initsequenz werden für den Clientdrucker übersetzt
(Papierformatnummern, Schachtnummern etc.) und der Ausdruck gestartet
- Das übertragene und dekomprimierte Spoolfile wird analysiert, die Seiteninhalte
(Metafile) werden auf den Clientdrucker übertragen und ggfs. zusätzliche
Druckkommandos ausgeführt.
- Mit Ende des clientseitigen Druckjobs wird der Thread beendet (Alle Druckthreads
sind sequentiell syncronisiert und werden nacheinander abgearbeitet).
Was passiert bei der Abmeldung eines Clienten?
- Mit dem Schliessen einer Sitzung beendet sich der Sessionserver automatisch und
trennt dadurch seine TCP/IP-Verbindung zum Slimprinterdienst.
- Der Slimprinterdienst erkennt das Ende der Session n und löscht alle zu der
Session n gehörenden Drucker.
Installation
a) Serverinstallation
Zur Serverinstallation ist der Serverinstaller SlimprintSvc.exe auszuführen. Der
Installer installiert folgende Komponenten:
- Serverdienst
- Der Serverdienst wird installiert und gestartet
- Es werden Voreinstellwerte gesetzt, die mit dem
Serverdienstcontroller geändert werden können.
- Sessionserver
- Der Sessionserver benötigt keine weiteren
Einstellungen
- Serverdienstcontroller
- Der Serverdienstcontroller verwaltet die
grundlegenden serverseitigen Einstellungen und
- ermöglicht die Eingabe des Lizenzcodes sowie
zusätzlicher Clientlizenzen.
b) Clientinstallation
Zur Clientinstallation ist der Clientinstaller SlimClient.exe auszuführen. Der
Installer installiert folgende Komponenten:
- Die Clientdll
- Die Clientdll wird in der Registrierung verankert und automatisch an mstsc.exe gebunden
- Die Clientverwaltung
- Unmittelbar nach der Installation wird die Clientverwaltung gestartet

- In den Zeilen der Tabelle werden sämtliche lokal installierte Drucker aufgelistet.
- In den Spalten der Tabelle können folgende Einstellungen getroffen werden:
- In der linken Spalte Auswahl sind die Drucker zu markieren, die in einer RDP-Sitzung verwendet werden sollen. Die angezeigten Druckernamen entsprechen den auf dem Client installierten.
- In der Spalte Treiber sind 3 Auswahlmöglichkeiten vorhanden:
- WIT Universal: Ein Universaltreiber für die meisten Papierformate und Auflösungen
(auch geringe Auflösungen wie 72x72dpi, asymmetrische Auflösungen 360x180 dpi und Faxauflösungen)
- WIT Universal2: Ein Universaltreiber mit den Papiergrössen A0,A1,A2 zusätzlich, dafür ohne asymmetrische Auflösungen und einer maximalen Auflösung von 4800 dpi
- Originaltreiber: Hier wird der Originaltreiber des Druckers (muss auch auf den Terminalserver installiert sein!) verwendet. Diese Variante kann benutzt werden, wenn die Universaltreiber den Druckvorgang nicht unterstützen (z.B. Plotter)
- Die Spalte Privat entscheidet über die Sichtbarkeit des Druckers in einer Terminalserversitzung. Private Drucker sind nur für den Benutzer selbst, Hauptbenutzer und Administratoren sichtbar. Andernfalls ist der Drucker für jedermann sichtbar und benutzbar.
- In der Spalte Standard kann ein Drucker als Standarddrucker für die Terminalsession unabhängig vom lokalen Standarddrucker gesetzt werden.
- Besitzt ein Drucker mehrere Papierfächer, so kann in der Spalte Schächte eine Zuordnung zwischen den am lokalen Drucker vorhandenen und den in den Universaltreibern vorhandenen 3 Schächten getroffen werden.
Verwendung bei explorerlosem Betrieb (es werden eine oder mehrer Anwendungen
direkt mit den Terminalserviceclient gestartet)
Da mit Beginn der Terminalsitzung der Sessionserver gestartet werden muß, gibt
es bei explorerlosem Betrieb Probleme. Deshalb wird bei der Installation der
Serverkomponente ein Hilfsprogramm ‚SlimBootstrap.exe’ mit installiert.
Standardmäßig ist dieses Programm unter C:\Programme\Slimprinter zu finden.
SlimBootstrap.exe sorgt für den Start des Sessionservers und startet weitere
Programme, die in der Textdatei Proggis.txt (im selben Verzeichnis wie
SlimBootstrap.exe) gespeichert sind (je Zeile ein Programmeintrag). Um für
mehrere Benutzer unterschiedliche Konfigurationen zu ermöglichen, können weitere
Textdateien mit unterschiedlichem Namen angelegt werden. Der zu verwendende
Dateiname wird dann einfach als Parameter (nur durch ein Leerzeichen abgesetzt)
an den Eintrag zu Slimbootstrap.exe angefügt. Ist zum Beispiel die Textdatei
MyProgs.txt vorhanden wäre für die rdp-Verbindung als Programmstart
C.\Programme\Slimprinter\Slimbootstrap.exe C:\Pfad\MyProgs.txt einzutragen.
Innerhalb der Textdatei stehen dann je Zeile die kompletten Pfade mit
auszuführender Datei jeweils in einer Zeile. In diesen zeilenweisen Einträgen
sind folgende Platzhalter zulässig:
"%USERNAME%"
"%WINDIR%"
"%USERDOMAIN%"
"%USERPROFILE%"
"%ALLUSERPROFILE%"
"%APPDATA%"
"%COMPUTERNAME%"
"%COMSPEC%"
"%HOMEDRIVE%"
"%HOMEPATH%"
"%LOGONSERVER%"
"%OS%"
"%TEMP%"
"%TMP%"
Das Programm Bootstrap.exe beendet sich selbst, wenn alle durch diesen
Mechanismus gestarteten Programme beendet sind. Der Sessionserver wird beendet
und die Sitzung geschlossen.
Lizenzverwaltung
Die Demoversion von Slimprinter kann durch die Eingabe eines zu der vorhandenen
Seriennummer gültigen Lizenzcodes in eine Vollversion umgewandelt werden.

In der Grundversion werden maximal 5 gleichzeitige Benutzer unterstützt. Die
Anzahl der Clientdrucker ist dabei unbegrenzt. Soll die Version auf mehr
gleichzeitige Benutzer erweitert werden, müssen zusätzliche Clientlizenzen
installiert werden.
Zusätzliche Clientlizenzen sind ebenfalls an die Serienummer gebunden.
Clientlizenzen sind mit unterschiedlicher Clientanzahl erhältlich.
Zum Eintragen einer Clientlizenz muss die Schaltfläche „Neue Lizenz“ geklickt
werden und im Popupfenster der Lizenzschlüssel eingetragen werden.

Programmupdates
Programmupdates erscheinen in loser Folge auf der Website von Slimprinter.
Die Updates sind generell einmal auf dem Server zu installieren. Ist ein Update
der Clientsoftware erforderlich, wird dies unmittelbar bei der Herstellung der rdp-Verbindung eingeleitet. Nach
dem Update ist ein Neustart der rdp-Sitzung erforderlich, andernfalls werden
keine Clientdrucker erstellt.
Serverseitig wird das Clientupdate mit folgender Messagebox gemeldet:

Clientseitig erscheint folgende Meldung:
