How does Slimprinter work?
The virtual channels of the RDP protocol are an integral part for the
interaction between the terminal server and the client computer.
On server side runs a service component communicating with a process (session
server) via TCP/IP loopback. An instance of this component will be started for
every session. The session server is the server-side end of a virtual channel.
(This Components provided by the serverinstaller)
The client-side end of the virtual channel is a DLL (Slimprin.dll). This DLL
will be loaded automatically during execution of the terminal service client
(mstsc.exe) and bound to mstsc.exe.
(The clientcomponents provided by the clientinstaller)

During creation of an RDP connection the following steps will be performed:
- On client-side the terminal service client will be started and the DLL
Slimprin.dll will be bound to the service. The login form appears and after
successful authentification the session will be started on the terminal server.
.
- On the terminal server the session server will be started in the just created
session. The session server then logs on to the Slimprinter service. If there is
no client license available the session server will be terminated within the
session and returns a message. If the server is not reachable, the session
server will be terminated as well and a corresponding message is returned.
- The session server tries to send an init sequence to the client dll over the
virtual channel. If the client dll does not respond to this init sequence the
session server will be terminated without returning any message. This ensures
that clients without Slimprinter installation continue working in the usual way.
- The session server requests the printer configuration of the client. All
printers and their configuration for the client that have been activated for
Slimprinter (see below, client configuration) will be transmitted.
- The session server sends the request for creating the just received printers and
their configuration to the Slimprinterservice.
- The Slimprinter service creates the requested printers.
- The initialization of Slimprinter is finished.
When a print job is sent to a Slimprinter printer, the following steps will be
processed:
- Slimprinter spools the print job.
- The session server is then notified about the spooled print job. The session
server sends the initialization for the equivalent client printer. The
server-side spool file will be compressed and sent to the client dll via the
virtual channel. The client dll then decompresses the spool file. .
- The client dll starts a print thread and notifies the session server that it is
available again (for the length of this process the client dll is marked as busy
for the session server).
- The session server then sends a command to the Slimprinter service to delete the
server-side print job.
- The Slimprinter service deletes the print job.
What is the printer thread doing?
- The parameters of the init sequence are translated for the client printer (paper
size, tray numbers etc.) and the actual printing will be started.
- The transmitted and decompressed spool file will be analyzed, the page content
(meta file) will be sent to the client printer and additional print commands
will be executed if required.
- The thread will be stopped when the client-side print job is finished (all print
threads are sequentially syncronized and processed consecutively).
What happens when a client logs off?
- When closing a session the session server is terminated automatically and closes
its TCP/IP connection to the Slimprinter service.
- The Slimprinter service notices the end of the session n and deletes all
printers belonging to this session.
Installation
a) server installation
For installation of the server execute the server installer SlimprintSvc.exe.
This installer installs the following components:
- Slimprinter service
- The service will be installed and started with
default settings which can be changed with the Slimprinter service controller.
- Sessionserver
- The session server doesn't need any specific
settings.
- Slimprinter service controller
- The Slimprinter service controller manages the
basic server-side settings. The controller is also the place to enter the
license code and additional client licenses.
b) Client installation
For installing the client execute the client installer SlimClient.exe. This
installer installs the following components:
- Clientdll
- The client dll is hooked into the registry and
automatically bound to mstsc.exe.
- Client management
- The client management starts immediately after the
installation.

- All locally installed printers are listed in the
table rows. You can make the following settings in the table columns: Check the
printers which should be used in an RDP session in the left column "Selection".
The displayed printer names are those of the locally installed printers.
- For the column "drivers" there are three
selections available: .
-
- WIT universal: a universal driver
for most paper formats and resolutions (even small resolutions like 72x72 dpi,
asymmetrical resolutions like 360x180 dpi and fax resolutions).
- WIT universal2: a universal driver with
additional paper formats A0, A1 and A2, but without asymmetrical resolutions and
a maximum resolution of 4800 dpi.
- original driver: Here the original
printer driver is used. This driver also has to be installed on the terminal
server in order to make SlimPrinter work correctly. This variant can be used if
the universal drivers don't support the printing process (e.g. plotting).
- The setting in the column "private" decides over
the visibility of a printer in the terminal session. Private printers are only
visible to the user (owner), main user and the administrator. If the printer is
not set to "private" it will be visible and available for every user.
- In the column "standard" a printer can be set as
standard printer for the terminal session. This setting does not affect the
local standard printer of the computer.
- If a printer has more than one paper tray you can
assign a tray of the local printer to one of the three trays offered by the
universal printer driver using the column "trays".
Usage without explorer (one or more applications will be started directly with
the terminal service client)
Since the session server has to be started at initiation of the terminal
session, some problems may arise when using Slimprinter without Explorer.
Therefore the tool "SlimBootstrap.exe" will be installed during installation of
the the server component. This tool can be found at C:\Program Files\Slimprinter
by default. SlimBootstrap.exe starts the session server and other programs,
which are defined in the textfile Proggis.txt (in the same directory as
SlimBootstrap.exe, one program entry per line). To set up different
configurations for several users you can set up further text files with
different names. The file name to be used will then be appended as parameter
(divided by blanks) to the entry of SlimBootstrap.exe. If you have, for example,
the file MyProgs.txt, you have to enter C:\Program
Files\Slimprinter\SlimBootstrap.exe C:\\MyProgs.txt as program
call for the RDP connection.
In your self-defined text file enter the complete path to an executable file in
each line. The following placeholders are valid in these line entries:
"%USERNAME%"
"%WINDIR%"
"%USERDOMAIN%"
"%USERPROFILE%"
"%ALLUSERPROFILE%"
"%APPDATA%"
"%COMPUTERNAME%"
"%COMSPEC%"
"%HOMEDRIVE%"
"%HOMEPATH%"
"%LOGONSERVER%"
"%OS%"
"%TEMP%"
"%TMP%"
The program Bootstrap.exe terminates automatically if all programs that have
been started through this mechanism are terminated. The session server will then
be terminated as well and the session will be closed.
License management
The demo version of Slimprinter can be turned into a full version if you enter a
license code matching the serial number. .

In the basic version a maximum of five concurrent users is allowed. The number
of client printers is unlimited. If you want to upgrade your version for more
concurrent users, you have to install additional client licenses.
These additional licenses are bound to the serial number as well.
Client licenses are available for different numbers of clients.
To enter a client license you have to click on "New license". Then enter your
license key in the popup window.

Program updates
Program updates will be published on the website of Slimprinter.
In general these updates have to be installed once on the server. If an update
of the client software is necessary, this will be performed right after
initiation of the RDP connection. After the update a restart of the RDP
connection is necessary, otherwise no new client printers will be installed.
On server side the client update will be announced with the following message
box:

On client side the following message will be shown:
