Carl Stalhood

Saturday, 16 July 2011

Troubleshooting and Explaining the Citrix Universal Print Driver

This article explains the Citrix Universal Print Driver and provides troubleshooting help.

The Citrix Universal Printer, originated in Presentation Server 4.0. Refer to the following:

CTX107059 – Advanced Concepts Guide for Presentation Server 4.0, pages 243-250

CTX106812 – The Citrix Universal Printer Explained

The PCL5c UPD driver, originated in MetaFrame XP, Feature Release 3, is based on the HP Color LaserJet 4500, is 600 dpi, and supports color.

The PCL4 universal driver, originated in MetaFrame XP, Feature Release 2, is the native Windows HP LaserJet Series II driver, monochrome, and 300 dpi.

Q: Is it possible to change the name of the Universal Print Driver (UPD)?
For example:
From “HP Color Laser Jet 4500 (MetaFrame PCL5c Universal Driver)” to just “MetaFrame PCL5c Universal Driver” for demonstration purposes.

Changes to the Registry Value: DriverAlias under HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\UniversalPrintDrivers\”Type of Driver” have no effect.

A: The part in parentheses is strictly an annotation we add to help administrators to identify the UPDs from all of the other Windows printer drivers. This is not actually part of the name.

So the actual name of the driver is “HP Color LaserJet 4500.” This driver is a stock Windows printer driver that comes with Windows by default.

The universal drivers are installed and treated like any other Windows print driver. MetaFrame XP Feature Release 3 changes the driver list in the Management Console so the universal drivers have a special icon and tag line.

Altering the Default Driver for the UPD

The key

Data of Type REG_SZ: EMF(Presentation Server 4.0 and 4.5) PCL4;PS;PCL5c.

Example: In MetaFrame XP Feature Release 3, if you remove PCL5c, the printer is mapped as PCL4. Certain MetaFrame version can toggle this functionality by altering the Feature Release level.


If EMF is removed, restart the Citrix Print Manager Service. A customer was publishing the RDP Client from the Presentation Server 4.5 and then connecting to both Citrix and non-Citrix Terminal Servers. The printers in the second hop were not creating.

The creation of the UPD requires that the appropriate feature release is set and the server is obtaining the corresponding feature release license. If these conditions are not in place, an attempt to manually map the UPD printer as outlined in CTX681954 - Troubleshooting Citrix ICA Printer Autocreation will not show the UPD printer as an option.

Note: Native printers will map.

If you leave only PS, no printer is mapped. The “PS” universal driver is intended for use with UNIX Clients, where Postscript is the default printer control language.

You do not need a PCL-compatible printer/driver to take advantage of the PCL5c or PCL4 universal printing feature. The PCL interpreter, Pcl4rast.dll, is built into the Win32 and Macintosh Clients (version 6.20 or later). The PCL print streams generated by these server-side drivers are interpreted by our client software, VDSPL30N.dll, and rendered locally on the client utilizing the printer drivers and operating system of the client device. To summarize, all the PCL UPDs need a working printer/driver on the client device. Local printers or clients that are unable to support the basic features of the UPD drivers functionality may not print correctly.

Presentation Server 4.0 and 4.5 uses a client-side EMF metafile handler, EMFRENDR.dll, and a client-side EMF interpreter, VDSPL30N.dll. These features are available in the ICA Client for Windows version 9.0 and later. The EMF handler captures the data of the inbound spool file into the user’s temp directory and launches CPVIEWER.exe (responsible to interpret the EMF spool files by playing back each record) to preview and print this file.

Known Issues / Limitations

Issues related to the native PCL5c Windows driver that MetaFrame XP uses, may cause minor corruptions in a limited subset of documents when printed through UPD. However, the version that ships with Windows Server 2003 seems to have fewer problems. Therefore, it is advisable to have the customer upgrade their Windows 2000 server driver with the version that ships with Windows Server 2003.

CTX105353 - Universal Print Driver Output Is Faded and Illegible
CTX102574 - UPD, Universal Print Driver Client, Fixes in the 8.0 Win32 ICA Client
CTX107069 - SAP Frontend Printing Fails When Running SAPGUI for Windows on Presentation Server 4.0
CTX102919 - Wfica32.exe � Program Error may Occur when Printing from the ICA Version 7.100 Client using Universal Print Driver PCL:4
CTX488760 - Event ID 1106, Client Printer Autocreation Failed
CTX113551 - Color PDF Files Print in Black and White When Using the Universal Print Driver
CTX115464 - Print Field Commands Not Printed with Universal Printer Driver
CTX115553 – Presentation Server Client 10.x Introduces a New Method for Printing Documents From the Advanced Universal Print Driver
CTX115762 – Controlling Which Universal Printer Driver Gets Loaded on a Citrix Presentation Server 4.5 64-bit Server
CTX109196 – Mirrored/Inverted Print Jobs Appear when Printing from Presentation Server 4.0
CTX114287 – How to Enable Preview on a Client as the Default for Citrix Universal Autocreated Client Printers
CTX114755 – CPVIEWER Consumes Memory and Freezes the Local Workstation When Using the Universal Print Driver
CTX109149 – Error: The spool data received does no appear to be a Windows Server EMF spool file. ... No Printouts Appear When Using EMF Printing
CTX118131 – Current Known Issues about Garbled Printing with EMF-based Citrix Universal Printer.

CTX118554 – XenApp 5.0 Univeral Print Driver Defaults to EMF Printing in Windows 2008

The UPD Fails to Install

A few possible reasons are as follows:

1. The spooler was stopped/hung during the install.

2. The spooler service is set other than “local system” or account that is installing MetaFrame XP.

3. Console Error, Digital Signature Not Found. This is unusual because the HP LaserJet Series II driver is signed. A policy that disallows the addition of print drivers may be configured

4. There is a possible sequence in the upgrade path in MetaFrame XP.

CTX105821 - Error: Printer rundll command failed.

CTX105860 - How to Re-install the MetaFrame PCL5c Universal Driver

Print Jobs Appear to have an Increased Size when using the UPD with MetaFrame XP and MetaFrame Presentation Server 3.0

Autocreated/universal print driver (UPD) printers have a smaller print job size on a MetaFrame server, which is in PCL4/5c format. The PCL4/5c format is suitable for network transmission because of its small payload. However, when the print job reaches the client, the print job is rasterized, thus creating a larger print job. In the case of Hewlett-Packard and other native printer drivers, the print job created on the MetaFrame server is usually in EMF format but is converted to a native printer format on the client. Depending upon the efficiency and architecture of the native printer driver, the size of the EMF print job may be larger than the native format and vice versa.

When using UPD, the following steps occur:

1. The job is created in PCL format on the server by the universal print driver.

2. Data is sent to the client within an ICA virtual channel.

3. PCL data is converted into a bitmap on the client.

4. The bitmap is spooled on the local printer.

The result is that the bitmap image of PCL data in the client printer spooler is larger then the PCL data sent across the network to the client. This permits optimizing the bandwidth that is available between the client and server, but printing the job with the UPD could be slower when the print job reaches the client. The UPD is best suited for print driver management, bandwidth utilization, and autocreating client printers but does not support special printing features such as double-sided printing.

Printer Will not Autocreate Using the Universal Print Driver

1. Does removing any third-party printer drivers resolve the issue?

2. If a known server is “working” and one is “broken,” attempt to replicate/import the UPD from the working server to the non-working server.

3. Is the server licensed and the appropriate feature release level set correctly?

4. Ensure the UPD is installed and no policies are preventing the installation of printer drivers.

5. Ensure the Version 7.0 client or latter is being used for the MetaFrame Feature Release 3 UPD and that the Pcl4rast.dll is present on the client machine.

6. Ensure the Version 9.0 client or greater is being used for the MetaFrame Feature Release 3 UPD and that the EMFRENDR.dll is present on the client machine.

7. CTX111308 – Session Printers Assigned Through a Policy Are Not Using the Citrix Universal Print Driver

Setting the UPD for All, Except a Few Printers (MetaFrame XP Feature Release 3)

This is addressed in CTX105385 - Error: Client autocreation printer failure - Print driver not allow based on compatibility list and Event ID 1104

Alternate Method:

1. Select Use Universal Driver only if Native Driver is Unavailable in the Management Console.

2. Clear the following box:

3. For printer drivers that are never to be used, add the names of any of these drivers to this list:

4. Restrict users from adding drivers:


Troubleshooting UPD Printing Within Applications

1. Connect a printer locally to the MetaFrame server and select the HP LaserJet Series II or current UPD alias driver in the Add Printer wizard.

2. If you cannot connect this printer to the server, browse and connect to a shared network printer and modify the driver on the Advanced tab of the Explorer’s printer properties dialog box.

Create an alias UPD printer and set the port as FILE, run the application, and print to the alias UPD printer.

4. Verify how the application behaves when executed on the console with the same driver that is used by the UPD.

5. Do any other similar print outputs in other applications experience the same behavior as the UPD?

6. Do print jobs from the applications experience any issues when mapped to the same driver as the client device?

7. When printing certain forms using the universal print driver, the page does not print as displayed?

When printing using Version 2.0 of the universal printer driver with custom in-house fonts, the print job renders an incomplete print, especially when using large font sizes. This fix offers a workaround by allowing you to disable print optimization in the printer settings. To do this, you must set the following registry key:

Name: DisablePrintOptimizations

[From MPSE300R05W2K3006][#128201]
The application is directly inserting PCL of its own origin into the print stream using the form overlay capability of the PCL language. The PCL form overlay feature can be accessed through an escape function provided by most PCL5 printer drivers, the 4500 driver included. It basically allows an application to insert arbitrary PCL directly into the print data stream.


Configure the application to use strictly GDI rendering instead of PCL EscapePassThrough or the standard device driver’s instead of the universal print driver.

Can the UPD Margin Settings Be Changed?
The margins presented by the new universal driver, HP Color LaserJet 4500, are different. However, the bitmap-to-page registration algorithm is unchanged. Because MetaFrame XP Feature Release 2 uses the HP LaserJet Series II driver, the nonprintable region of a Series II printer is ¼-inch on each side of the page.

Citrix uses the UPD as a proxy driver on the server and the non-printable region of the client printer is most likely going to be different. Therefore, the real nonprintable area of the printer may be larger than that of the universal driver. A print job where the application places data on the page near the printable limit of the UPD may drop out on the printed page because it falls outside the printable limit of the underlying client printer.

1 comment: