This article explains how to use locally connected printers. We suggest to use network printing and keep printers off the desktop infrastructure but there are situation where printing to locally attached printers in unavoidable.
When printers are connected to Thin Clients, there are these important questions to be considered:
Most probably you are familiar with how network printers work. Either they have Ethernet or WLAN interfaces built in or you bought an extra "print box", but basically they have an IP address and potentially a queue name. On the Windows side you would say "TCP/IP printing" and make sure Windows knows about IP address and queue name. There are two different printing protocols:
NoTouch supports both of them, as does Microsoft Windows.
Some VDI protocols do add another option - they allow to send print jobs within their regular protocol - a feature called "printer forwarding" or "printer mapping". For now only the RDP and ICA/HDX protocols can do this, thus this particular feature will work with Microsoft Remote Desktop services and Citrix products only. VMware Horizon can do that too (even though the PCoIP protocol natively does not do that), VMware has a "logical printer forwarding" mechanism that is technically based on ThinPrint.
You know that every printer comes with driver(s) and you know that drivers are usually installed inside a Windows operating system (and not inside a printer or a LAN print server or so). However, some people prefer to install printer drivers on endpoints instead of terminal servers / VDI desktops. Citrix for example calls this "universal printing", inside the VDI Windows you don't have any printer driver then and leave everything to the endpoints. This may sound contradictory to the idea of slim endpoints.
In case of NoTouch, since NoTouch is based on Linux, instead of the normal Windows printer drivers so-called PPD files (available from printer manufacturers) serve as "drivers".
Advantages of keeping Windows printer drivers on the server/VDI side of things are:
Well, not at all. If you use a VDI product that supports generic USB device forwarding and you forward a printer with that technology, NoTouch is not concerned with the device or the printing any more. Everything is done inside the Windows VDI desktop. If you intend on forwarding local printers via generic USB forwarding, stop reading here - this article does not apply.
The main printer configuration is located under "Drivers/Printer", both locally on the client as in NoTouch Center. Several printer objects can be configured.
When working in the local configuration, click on "Drives/Printers" and then either add a new printer object or edit an existing one. The configuration of a printer object looks like this:
These are the parameters that can be set:
Configuration in NoTouch Center works equally easy - same parameters, same options:
The only visible difference is that in NoTouch Center, the printer objects are already there - you don't have to click on "Add new" as you do on the client. Up to four printer objects can be defined that way.
Note: Older versions of NoTouch Center (up to 4.1.25 use a more complicated approach). If, and only if, you use such a legacy version please check here: Legacy NoTouch Center Printer Configuration
The main component handling printing is CUPS, the Common Unix Printing System. CUPS is enabled by default and can be controlled within the "CUPS" parameters inside the "Services" parameter subgroup. These parameters are available:
Second, there is the LPD component that implements the LPD/LPR functionality. Also under "Services", there is the "Start LPD" parameter, that is also on by default. If you switch it to off, no printing via LPD can happen (though raw printing will still work).
This applies to the "printer mapping function" of RDP, Citrix ICA/HDX and VMware Horizon View protocols only.
When logging into Windows, you'll see an auto-created printer now. You can use the regular Windows printer dialogs to print a test page.
NoTouch can act as a print server using either LPD or Raw printing. In fact, by creating a printer object, it will be accessible via LPD automatically. For raw printing, you need to set the "TCP port number" parameter to a meaningful value. Most people will chose 9100 here since this is the standard port on Windows.
Setting up the printer in Windows is easy. Create the printer, select a driver, and chose a remote port. Chose either "Microsoft TCP/IP printing" or "TCP raw printing" depending on if you want to use LPD/LPR or raw printing. Make sure you type in the correct host name or IP address.
An external guide for setting this up can be found here: Configuring Printserver Printing on Windows This external web page tells you to set LPR in step 7, should you prefer to use 9100/raw printing, then please select "Raw" instead of LPR.
If you need to print from a local application, such as the builtin Firefox web browser, you have no Windows server that you can install printer drivers on. In that case, you must spool and render the jobs locally, requiring proper PPD files. However, there are just two things that need to be done:
You can also use NoTouch Center to distribute PPDs. Put the PPD file on a web accessible folder somewhere in your network, and then type in the complete URL into the "PPD pack URL" parameter under "Drives/Printers".