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:

  1. 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. .
  2. 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.
  3. 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.
  4. 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.
  5. The session server sends the request for creating the just received printers and their configuration to the Slimprinterservice.
  6. The Slimprinter service creates the requested printers.
  7. The initialization of Slimprinter is finished.

When a print job is sent to a Slimprinter printer, the following steps will be processed:

  1. Slimprinter spools the print job.
  2. 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. .
  3. 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).
  4. The session server then sends a command to the Slimprinter service to delete the server-side print job.
  5. The Slimprinter service deletes the print job.

What is the printer thread doing?

  1. The parameters of the init sequence are translated for the client printer (paper size, tray numbers etc.) and the actual printing will be started.
  2. 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.
  3. 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?

  1. When closing a session the session server is terminated automatically and closes its TCP/IP connection to the Slimprinter service.
  2. 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:

  1. Slimprinter service
    1. The service will be installed and started with default settings which can be changed with the Slimprinter service controller.
  2. Sessionserver
    1. The session server doesn't need any specific settings.
  3. Slimprinter service controller
    1. 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:

  1.  Clientdll
    1. The client dll is hooked into the registry and automatically bound to mstsc.exe.
  2. Client management
    1. The client management starts immediately after the installation.

             

    1. 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.
    2. For the column "drivers" there are three selections available: .
      1. 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).
      2. WIT universal2: a universal driver with additional paper formats A0, A1 and A2, but without asymmetrical resolutions and a maximum resolution of 4800 dpi.
      3. 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).
    1. 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.
    2. 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.
    3. 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".

            

    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: