Citrix printing with Universal Print Server, Universal Print Driver and Citrix Universal Printer

There are three different components to Citrix printing that can be implemented to unlock better management and advanced printing capabilities. The Citrix Universal Printer is one, the Citrix Universal Print Driver and the Universal Print Server are the others.

What is the Citrix Universal Print Driver?

The Citrix universal printer driver is installed with the VDA on Server/Desktop OS and can operate with most client attached and networked printers. This driver is only used if the VDA machine does not find a specific driver for printers that are being used in session however is policy driven and configurable. You can specify that the Universal Print Driver is always used for example, configured using Citrix Policies. If a user needs vendor specific preferences on a printer then you may have to install the native print driver for that specific printer. Whilst this will work it will add extra maintenance overhead as you provision the print driver to your VDAs using PVS or MCS. You also need to make sure the driver does not negatively affect operations. For the majority of the time though, using the Universal Print Driver will work just fine for most needs so ultimately your work will be cut out for most print devices.

You can tell printers are using the Citrix Universal Print Driver by looking at the printer properties shown below.

1-minTo specify the use of the Universal Print Driver, create a Citrix policy using the Universal print driver usage setting. Set this as Use universal printing only or Use universal printing only if requested driver is unavailable. 8-min

What is the Citrix Universal Printer?

The Citrix Universal Printer (optional) is a generic printer object that is auto-created at the start of a session and is not linked to any particular printing device. What this means is you could have 10 printers mapped to your local machine, but when logging on to a Citrix session only one printer object is created (the generic Citrix Universal Printer). This can greatly reduce resource usage and logon times since only one printer object has to be created.

When users go to print the print job can either be sent to the default printer (default) or you can use a preview window which allows users to select any printer that is linked to their local machine.

To enable the Citrix Universal Printer setting, set Citrix policy Auto-create generic universal printer to Enabled. By default the Citrix Universal Printer will print to the client’s default printer. This behaviour can be modified to allow the user to select any of their compatible local or networked printers. The Citrix Universal Printer uses the Citrix Universal Print driver and is only compatible with Windows OS. The Citrix Universal Printer is best suited for users who require access to multiple printers both local and networked which may vary with each session or/and logon performance is a priority. When enabling th Universal Printer set Auto-create client printers to Do not auto-create client printers. This will ensure only the Citrix Universal Printer is created when a session is launched.9-minThe Citrix Universal Printer will show as below when a user clicks to print.11-minBy default previewing is disabled so when a user clicks print the job will be sent to the users local default printer. If the user wants to preview on client they could always go in to the printing preferences of the Universal Printer and check the Preview on client box. This setting will be retained within the users profile using the Printer properties retention policy. 12-min To change the way printing behaves with the Universal Printer, edit the Universal printing preview preference Citrix policy setting and specify Use print preview for generic universal printers only.10-minNow when a user clicks on print a preview box appears using the EMF Viewer (Enhanced Metafile Viewer).13-minClicking on the print button again gives you the option to print to any of your locally connected printers.14-min
Note: It is recommended that you test the Citrix Universal Printer output to verify alignment before using Universal Printer in a Production environment. If you find that the EMF Viewer shows a print being aligned properly but the actual result is not then you may need to use the Universal Print Driver or native print driver specific to that printing device.

What is the Citrix Universal Print Server?

The Citrix Universal Print Server component (v7.6) adds some additional capabilities on top of the standard Windows Print Provider such as caching, compression and QoS/bandwidth reducing functions providing a better printing experience. You install the print server software on top of a Windows Print Server device and then Citrix users obtain their print queues from these print servers.

Citrix Universal Print Server is made up of two components:

  1. The UpsServer component installed on your print servers.
  2. The UpsClient component which comes installed with the VDA on Worker VMs/machines.

Be aware that UPS 7.6 does not officially support Print Servers running Windows Server 2012 or 2012 R2 at this time of writing. 7.6 FP3 now does support 2012 R2.

How does this type of Universal Print Server printing work?

Firstly, when a client prints, the client component (UpsClient) on a VDA receives the EMF or XPS based print stream from the Citrix Universal Print Driver and forwards it to the print server. Both the print commands and print data are sent using their own ports. Print commands are sent via TCP 8080 and print data is sent over TCP 7229 by default however these ports can be changed via Citrix Policy and it is recommended by Citrix that you assign this policy to an Organizational Unit containing only your print servers.

Secondly, the Server Component (UpsServer) retrieves the print data and forwards it to the respective printer by means of the Citrix Universal Print Server Virtual Port Monitor.

The printing route (using Universal Print Server or standard Windows Print Server)

Client devices with locally attached printers such as USB, LPT, TCP/IP etc. will route print jobs directly from their Citrix session through to the client device then on to the printer. The print job from the Citrix session is sent via the ICA protocol and the print data is compressed.

Outside of locally attached printers, Citrix has two different methods for sending your print job to a networked printer.

The default route sends the print job direct from Citrix session to print server. This is enabled by default but configurable via a Citrix policy named Direct connections to print servers. Think of the following scenarios if you have not disabled this policy:

Print server and Worker VM in same LAN, client device and printer in remote office

  1. Worker VM sends print job direct to print server via LAN
  2. Print server sends job to printer in remote office via WAN

Result = One LAN route and one WAN route taken.

Print server and Worker VM not in same LAN. Print server, client device and printer in same LAN

  1. Worker VM sends print direct to print server in remote office via WAN
  2. Print server sends job to printer via LAN

Result = One WAN route and one LAN route taken.

Now think of the following scenarios if you do have Direct connections to print servers disabled. This results in print jobs being routed through the client device.

Print server and Worker VM in same LAN. Client device and printer in remote office

  1. Worker VM sends print job to client device via ICA (over WAN)
  2. Client device sends print job to print server (back over WAN)
  3. Print server sends job to printer in remote office (back over WAN again)

Result = Three WAN routes taken. ICA compression is used from Worker VM to client device.

Print server and Worker VM not in same LAN. Print server, client device and printer in same LAN

  1. Worker VM sends client print job in remote office via ICA (over WAN)
  2. Client sends job to local print server via LAN
  3. Print server sends job to local printer via LAN

Result = One WAN route and two LAN routes taken. WAN route compressed via ICA.

Citrix recommend that you disable Direct connections to print servers if your Worker VMs and print servers are not in the same LAN. This is because in this situation the print job sent direct to the print server is not compressed. When the print job is routed via ICA it is compressed.

If you decide to leave the Direct connections to print servers setting enabled the print job will and can take a fallback route through the client device if needed. Fallback will occur if the XenApp/XenDesktop session cannot contact the print server, the print server is on a different domain without a trust, or the native print driver is not available on the master image used by the XenApp/XenDesktop VMs. In this scenario the print job will then be routed from Worker VM to client, then from client to print server and finally to printer.

Citrix Universal Print Server Installation

Since the UpsClient component is installed along with the VDA you only have to install the UpsServer component on your selected print servers and not perform anything extra on VDA machines. .NET 3.5+ is a requirement for the server component for UpsClient version 7.6. The UpsClient version 7.6 FP3 requires .NET 4.5.1 and Visual Studio 2013 64 & 32bit.

To install the Citrix Universal Print Server component on to your Windeows print server, firstly launch your XenApp/XenDesktop 7.6 media and click Universal Print Server. You can also browse to the XenApp/XenDesktop media and run the UpsServer_x64.msi or UpsServer_x86.msi package.

2-min

 

Accept the Citrix License Agreement and click Next.3-min

 

Choose an installation path and click Next.4-min

 

Click Install. Notice the Printing Server (Print Server) role will be installed if not already installed as it is a prerequisite.5-min

 

The required components are now installing.6-min

 

Installation is complete. Click Finish.7-min

 

Now all that is left is to configure the printing policies from within Citrix Studio that suit your needs. One of the main policy settings is Universal Print Server enable which needs to be set to enabled. You can provide native Windows printing fallback if the Universal Print Server component is unavailable.15-minOther policies include changing the HTTP/SOAP and/or CGP ports if required.16-min If you do change the HTTP/SOAP port to something other than 8080, you must implement the following registry key on your Universal Print Servers:

  • HKLM\SOFTWARE\Policies\Citrix\PrintingPolicies
    • DWORD object with name of UpsHttpPort and value of <portnumber>
      • For example – UpsHttpPort 8081 (port matces what you have set within Citrix policy.

And finally, the PDF Universal Printer

Thought I’d throw this in here too. If you use devices such as Chromebooks and/or when using Receiver for HTML5 the PDF Universal Printer provides an additional way to print documents. To enable PDF printing, create a Citrix policy enabling Auto-create PDF Universal Printer.

Note: You must be using XenApp/XenDesktop 7.6 VDA, StoreFront 2.6 and HTML5 v1.4 minimum.17-minYou must also install the PDF Printer software on your VDA machines. The latest version is 7.8.18-minWhen a user connects using Receiver for HTML5, the PDF Printer will be available. Click Print. 19-minClick Continue to open a PDF of the file on your local device. 20-minA new web browser tab will open showing the file in PDF format. You can download or print the PDF to a local printer. 21-min


21 Comments

  • Rakesh

    December 21, 2016

    I am missing Printer part… how is it added on XenApp servers or policy.

    Reply
  • George Spiers

    December 21, 2016

    You are missing the Citrix Universal Printer?
    If so, policy setting is “Auto-create generic universal printer”

    Reply
  • Rakesh

    December 23, 2016

    Hi George, thanks for your time.
    In the above page it seem printer is pointing to domain controller & it seems printer i added via Group policy if we have tried it seems logon time has very high.
    what i want to know where should be added printers is it via Citrix session printer or AD group policy.

    Reply
  • George Spiers

    December 23, 2016

    I see what you mean. Are you using Group Policy Preferences to create the printers? I use Group Policy, adding printers under Computer Configuration -> Windows Settings -> Deployed Printers.

    Also, if you are using Desktop OS, check the policy “Wait for printers to be created (desktop)”.

    Reply
  • Gilles

    January 3, 2017

    Hello,

    with the scenario “Print server and Worker VM not in same LAN. Print server, client device and printer in same LAN” and client pathway, with session printers, do I need printer drivers on the device client if they are installed on the VDA OS (3rd party and Citrix Universal Print Driver) ?
    (I use Citrix UPD for Office Printers and 3rd party with MFP)
    Is Citrix ICA compression better than Citrix Universal Printing compression ?
    Does Citrix Universal Printing compression work with 3rd Party driver ?

    Thanks

    Reply
    • George Spiers

      January 3, 2017

      Hi,
      The Universal Print Driver is for easier image management, less printer drivers makes for easier management and simply less clutter/chance of driver leaks or system crashes due to 3rd party driver installs. To answer your question, compression does work with 3rd party drivers.

      With session printers, there is no need to install drivers on client devices.

      In terms of which compression is best (UPS vs Citrix ICA) that is something you should test. Some printing compression tests had been performed a while back but the test results are too skewed to determine if UPS actually offers any real compression advantages. https://www.citrix.com/blogs/2015/08/21/xenappxendesktop-7-6-network-printing-considerations/

      Reply
  • Gilles

    January 5, 2017

    Thanks for your answers.
    Just one more : To use client pathway with universal driver, I suppose I have to use both, UPS ans Citrix ICA compression ? Can this cause issues ?

    Reply
  • George Spiers

    January 5, 2017

    You can use UPS with UPD and client pathway printing or you can choose not. It doesn’t matter what you choose, it won’t cause issues.

    Reply
  • Alan

    April 24, 2017

    Hi Geroge
    Thanks for your explanation

    What are the TCP port required between the UPS client and the UPS server?

    Reply
  • Alan

    April 24, 2017

    Hi Geroge
    Thanks for your explanation

    What are the TCP port required between the UPS client and the UPS server?

    Reply
    • George Spiers

      April 24, 2017

      Hi Alan by default it TCP port 8080 and 7229 however this can be changed by policy within Studio.

      Reply
      • Alan

        April 25, 2017

        Hi George

        Thanks for your reply.

        I faced a very strange issue. My VDA is in DMZ whereas the print server (UPS) is in Lab. Ups printing worked well until i updated the vda by MCS. Session printers were no longer mapped. The issue happened randomly and was fixed by updating the vda again. It was not firewall issue as the master image (to update the vda) is in same dmz and ups always works. Please advise

        Reply
  • George Spiers

    April 25, 2017

    Sounds like a driver issue although as you mention it is working now. If it happens in future you could try browsing to the UPS server from a VDA and manually connecting to one of the print queues, also check the Citrix Universal Print drivers are showing on the VDA.

    Reply
    • Alan

      April 25, 2017

      Hi George

      I did the test and browsing to UPS server from VDA was not working indeed. Having said that, the VDA is behind firewall so it sounds normal to me. Only port 7229 and 8080 have been opened In firewall. Correct me if i am wrong.

      Reply
      • George Spiers

        April 25, 2017

        No that is correct for print communication. Print mapping uses a mixture of TCP ports 135 and 139. Have you these open? If not, open and test.

        Reply
        • Alan

          May 10, 2017

          Hi George
          Some updates.
          I opened the port 135 and 139 but didn’t help. Nevertheless, I browsed and installed the printer successfully via RDP. The printer driver installed was PCL6 Universal Driver (for Ricoh). After that, I tested again with published application and it worked this time. The installed printer drivers is the PCL6 instead of Citrix Universal Printer driver. It’s just what you mentioned before!

          The question now is why the PCL6 drivers is use instead of the Citrix Universal ones. it was working before with the citrix universal printer driver….

          Alan

          Reply
          • George Spiers

            May 10, 2017

            Hi Alan.
            Do the two Citrix Universal drivers exist on the VDA? Sounds to me like the upgrade for some reason had deleted the drivers.

  • Alan

    May 11, 2017

    Hi George

    Yes. The Citrix Universal Printer and Citrix XPS Univeral Printer drivers are in place.

    Regards
    Alan

    Reply
    • George Spiers

      May 11, 2017

      Then your Citrix printing policy should be set to “Use universal printing only” or “Use universal printing only if requested driver is unavailable” depending on your preference. Any new printer mapped in to the session should be created with the Citrix universal print drivers. Existing printer queues may have a different driver (the one you installed via RDP). I’d remove those so they aren’t confusing you whilst troubleshooting. If you upgrade the VDA and it works, then it’s likely something corrupt in the current version of your VDA install. You can use the VDA cleanup utility and reinstall the current VDA and retry.

      Reply
      • Alan

        May 11, 2017

        Thanks for your time.
        The issue is quite weird. The VDAs were provisioned by MCS and UPS is always working well in the MCS master (before and after update). Probably I can try to delete all the provisioned VDAs and re-provision a new set of servers

        Reply

Leave a Reply