XenApp 5 Feature Profile - Citrix Universal XPS Printer Driver

I hate printing. Sadly, it's one of those necessary evils like backups, patch Tuesday, and renewing your driver's license

I hate printing.  Sadly, it's one of those necessary evils like backups, patch Tuesday, and renewing your driver's license (where I've actually helped fix a printer...sigh). 

That said, among the many changes in XenApp 5, Citrix has added some printing enhancements.  In addition to the normal, EMF-based Universal Printer Driver (UPD) and the ubiquitous PCL drivers that we've come to know over the different names and versions, Citrix has included a new feature named the Citrix Universal XPS Printer Driver.

XPS, or XML Paper Specification, printing is a new feature of Windows Server 2008 that attempts to create a platform-agnostic electronic document format similar to PDF files.  XPS printing capabilities are already built in to Windows Server 2008, Windows Vista, and Office 2007.  XPS printing is also available on Windows Server 2003 and Windows XP with the installation of .Net Framework 3.0 or 3.5.  Installing either of those versions of the .Net Framework will install the Microsoft component of XPS printing called "Microsoft XPS Document Writer." 

NOTE: This next step is only if you're running Windows Server 2003.  If you're running Windows Server 2008, you can skip to the next section - Configuring XPS Printing.

After that, you'll need to install the Citrix XPS Universal Printer component on to your application servers.  To do this, run the Add Printer Drier wizard and install the drivers located on the XenApp installation CD.  For Windows 2003 x86 servers, the location is \XenApp Server\w2k8\Program Files\Citrix\Drivers.  For Windows 2003 x64 servers, the location is \XenApp Server\w2k8x64\Program Files\Citrix\Drivers.  You'll be asked what type of printer you would like to install, and in this case it should be the Citrix XPS Universal Printer.

If successful, you should see the Citrix XPS Universal Printer driver in the print server properties (In the Printers folder, go to File | Server Properties).

Configuring XPS Printing

To configure your farm to use XPS printing, you'll need to create a printing policy that will dictate what kind of drivers the users' sessions will use.  This step hasn't changed in many years - you simply select whether or not the session should use only the universal driver, the universal driver only if a native driver is unavailable, or only the native driver.

One thing to keep in mind, however, is that the default setting for XenApp servers is to use the EMF-based universal printer introduced with Presentation Server 4.0.  To configure your servers to attempt to use the XPS driver first, you'll need to edit the registry.

  1. Open RegEdit and browse to the HKLM\Software\Citrix\UniversalPrintDrivers key.
  2. On the right side, you'll see the Driver List registry value.  Right-click that value and select Modify.
  3. Note that the default string is a list of abbreviations that looks like "EMF;XPS;PCL5c;PCL4;PS", and that XPS is the second in the list.  To configure your server to try XPS first, simply move XPS; to the front of the list, so that it looks like this: XPS;EMF;PCL5c;PCL4;PS.
  4. Once you've made the change, restart the Citrix Print Manager service.

What you've done is modified the priority of the universal printer drivers on the server.  Each time a new session starts, the server will check to see if the client has A) a policy enforcing a universal print driver, and B) capabilities to support each of the methods in the registry key, in order.  If a client does not have the ability to support XPS printing, then negotiations will move on to EMF printing, and down through the line until something compatible is found.

How does it work?

An XPS print job follows this process:

  1. A user tells an application to print, and the application sends the print data to the printer object within the user's session.
  2. The printer object on the server then sends the print data over to the XPS printer driver on the server, where it's converted into an XPS file (it's actually named *.xps).
  3. From there, the file is sent to the client device via the printing virtual channel to something called the XPS Print Helper, which is installed with the XenApp Plugin for Hosted Applications.
  4. At that point, if the XPS printer is not attached to a certain printer, the user is prompted to select a printer.  If the XPS printer is attached to a certain printer (something that happens at the beginning of a session), the printer selection screen does not appear and the job is sent directly to the printer.



Another day, another new feature.  Thing is - this is more of an extension of a feature that Microsoft has added, but I'm glad that Citrix is taking advantage of it so soon.  If you're using it and care to share your comments, please leave them below.

Join the conversation


Send me notifications when other members comment.

Please create a username to comment.

How do you install "Citrix XPS Universal Printer" on Server 2003?  I've tried using CitrixUpd.inf from \XenApp Server\w2k8\Program Files\Citrix\Drivers but only driver available is "Citrix Universal Printer".  .Net 3.5 is installed and there is a "Microsoft XPS Document Writer" printer available.  Any ideas?


I have the same problem as Brandon, It only lists the regular Citrix Universal Printer. I looked in the .inf file and it only has "Citrix XPS Universal Printer" listed for Vista and 2008.


My lab is all 2008 at the moment, so I wasn't able to test the 2003 installation stuff.  It is referenced in the XenApp admin guide, though.  I'll lab it up in the next day or two and get back to you.


XPS printing is a 2008 only feature IIRC. It might be possible to hack it on 2003, but it would not be supported.


Hallo Gabe,

This is an interesting article, thanks for that. But you are not mentioning any limits of this feature or benefit either. Have you or anyone else figured out any issues that have to be named? Are there any kinds of prints that will not work with XPS printing?


Perhaps Gabe tried this with one of the early releases like the Project Delaware tech preview release.  I remember we had to make a change kind of late in the relase cycle that removed the pre-vista support from the INF in order to get through MSFT certifcation.

We designed the driver to work on both platforms with .Net 3.0 SP1 or higher... but as Rich pointed out in an earlier post, the driver may work for you but is not offcially supported or fully tested on 2k3 platform (yet).

The main benefit to XPS is the smaller print job size compared to EMF.  This will be most noticeable for customers trying to print over bandwidth contrained WAN connections.

XPS also opens up some other options for us in the future regarding more agressive optimizations and a few other goodies.

-Gary Barton

Citrix Product Development



Any news about Citrix XPS on w2k3 X64 ?

I tried to install the drivers but when using CitrixUpd.inf, thay ask me to use a driver for x64.

So I can't use Citrix XPS for now.

If there is any tip to use it, please let me try ^^