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.
To 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.
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.The Citrix Universal Printer will show as below when a user clicks to print.By 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. 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.Now when a user clicks on print a preview box appears using the EMF Viewer (Enhanced Metafile Viewer).Clicking on the print button again gives you the option to print to any of your locally connected printers.
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:
- The UpsServer component installed on your print servers.
- 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
- Worker VM sends print job direct to print server via LAN
- 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
- Worker VM sends print direct to print server in remote office via WAN
- 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
- Worker VM sends print job to client device via ICA (over WAN)
- Client device sends print job to print server (back over WAN)
- 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
- Worker VM sends client print job in remote office via ICA (over WAN)
- Client sends job to local print server via LAN
- 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.
Accept the Citrix License Agreement and click Next.
Choose an installation path and click Next.
Click Install. Notice the Printing Server (Print Server) role will be installed if not already installed as it is a prerequisite.
The required components are now installing.
Installation is complete. Click Finish.
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.Other policies include changing the HTTP/SOAP and/or CGP ports if required. 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.
- DWORD object with name of UpsHttpPort and value of <portnumber>
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.You must also install the PDF Printer software on your VDA machines. The latest version is 7.8.When a user connects using Receiver for HTML5, the PDF Printer will be available. Click Print. Click Continue to open a PDF of the file on your local device. A new web browser tab will open showing the file in PDF format. You can download or print the PDF to a local printer.
Rakesh
December 21, 2016I am missing Printer part… how is it added on XenApp servers or policy.
George Spiers
December 21, 2016You are missing the Citrix Universal Printer?
If so, policy setting is “Auto-create generic universal printer”
Rakesh
December 23, 2016Hi 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.
George Spiers
December 23, 2016I 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)”.
Gilles
January 3, 2017Hello,
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
George Spiers
January 3, 2017Hi,
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/
Gilles
January 5, 2017Thanks 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 ?
George Spiers
January 5, 2017You 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.
Alan
April 24, 2017Hi Geroge
Thanks for your explanation
What are the TCP port required between the UPS client and the UPS server?
Alan
April 24, 2017Hi Geroge
Thanks for your explanation
What are the TCP port required between the UPS client and the UPS server?
George Spiers
April 24, 2017Hi Alan by default it TCP port 8080 and 7229 however this can be changed by policy within Studio.
Alan
April 25, 2017Hi 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
George Spiers
April 25, 2017Sounds 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.
Alan
April 25, 2017Hi 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.
George Spiers
April 25, 2017No 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.
Alan
May 10, 2017Hi 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
George Spiers
May 10, 2017Hi 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, 2017Hi George
Yes. The Citrix Universal Printer and Citrix XPS Univeral Printer drivers are in place.
Regards
Alan
George Spiers
May 11, 2017Then 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.
Alan
May 11, 2017Thanks 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
George Spiers
May 11, 2017No problem. Try on the MCS Master uninstalling the Universal Print drivers, then installing them. Now push the image out to VDAs and test. https://support.citrix.com/article/CTX125780
Cesar
June 15, 2018Hi Geroge,
First of all, excuse me because my questions may seem very silly but I am just starting in this world. Also sorry to comment in this old post but I think is really interesting.
I am creating a Citrix lab and would like to implement the UPS. My doubt is, do I need to install all printer’s specific drivers or with the UPD would be enough? I would like to set it to fall back on specific drivers if UPD doesn’t work so I imagine I just need to install the ones that don’t work properly with the universal one.
Am I right?
Many thanks in advance for your time
George Spiers
June 15, 2018Hi Cesar
As you mentioned, the UPD driver from Citrix can be used unless you need to use a vendor specific driver for compatibility or extra functionality features for example. There are policies that allow you to use the native driver, or if not available then the universal driver.
Alan
June 16, 2018Hi all
My issue was due to a registry key. After each MCS update, the newly provisioned VDA contains a key (i dont recall now, will post it later) which cause the server doesnt not join domain correctly (even it appears in active directory). To resolve it, i implemented a check to remove the key and follow by a reboot of the server.
Tim
July 11, 2018Hi George,
We use Citrix Universal Printer to map the default local printer towards the Citrix session.
We see however that each time when scaling options are modified (fe. fit to page for excel sheets), the document layout gets fully scrambled and isn’t printed properly. For now workaround is to print to pdf and print that document instead. Any idea what can be the cause of this behaviour?
kr
Tim
July 11, 2018In the meantime we found already a solution. Changing print format towards PCL5 seems to solve the issue
Ray
December 21, 2018George
I have a dumb question. How do I verify the upd is in fact used?
When I hit print preferences in a app, the Citrix printer (green colors with Citrix and arrow pointing to printer pops up) does this mean the upd is in use at the time? Is there any other ways to show that upd is used?
George Spiers
December 21, 2018Yes that would mean the UPD is in use. You can also click on Printer Properties on the printer and the driver will show under the Advanced tab.
Pingback: Citrix Troubleshooting 101: Frequently Asked Questions | eG Innovations
Pingback: Print Server Migration to Microsoft Azure - Concluzion.com
Pingback: Citrix Troubleshooting Guide & FAQs | eG Innovations
Alfredo
March 12, 2020When using UPD on 1912 to pring job, it opens on the task bar lots several icons related to the print job. then they are removed by them self. on VDA 7.6 this did not happend.
Wny idea why
ckr
April 7, 2020Hello ,
I see a “Getting PDF File” with a running circle on the bottom right of the screen which never gets generate pdf file to print? any one has this issue?
controller: 715 Cu2
vda: 715 cu5
html5 receiver: workspace app for html5 2002
store front: 3.12.2000
Thanks in Advance
CKR
Mr V
September 4, 2020In the section on the universal printer the impression I get is when you print you only see the universal printer then when you print to send the job you are given a choice of which local device for it to go to correct? I’m not seeing this in testing when hitting print the job is going straight to local default printer.
Pingback: Citrix Troubleshooting Steps – eG Innovations