iPrint Appliance local rendered jobs are canceled, aborted, or improperly rendered.

  • 7013074
  • 19-Aug-2013
  • 23-Oct-2018

Environment

Novell iPrint Appliance 1.1
Micro Focus iPrint Appliance 2.x
Micro Focus Appliance 3.x

Situation

Print jobs for a particular printer type (or multiple types of printers), result in canceled, aborted, or improperly rendered output.  Other printer types may print fine.

Resolution

The steps below apply to the iPrint Appliance 1.1, 2.x, 3.x and not to 1.0.1 or 1.0.

1. Extract the Linux printer drivers which you wish to upload. 

The two main repository for printer drivers are:
/usr/share/cups/model/
/usr/share/cups/model/manufacturer-PPDs/hplip
The command to extract a specific printer driver is:
Syntax:
gunzip /path/to/gz/file/filename.ppd.gz

Example:
gunzip /usr/share/cups/model/manufacturer-PPDs/hplip/hp-laserjet_1320.ppd.gz

Note: Regardless of which directory the gunzip command is run from, the resulting extracted ppd file will reside in the same directory as the .ppd.gz file.

2. Upload the extracted .ppd file to the Driver Store
Syntax:
iprntman driver driver_linux-2.4_x86-32_en --upload --from-ppd /path/to/extracted/ppd/filename.ppd

Example:
iprntman driver driver_linux-2.4_x86-32_en --upload --from-ppd /usr/share/cups/model/manufacturer-PPDs/hplip/hp-laserjet_1320.ppd
Note: When prompted to authenticate, use:
cn=admin,o=iPrintAppliance
3. Associate the uploaded printer driver to the printer agent.
a. Find the exact name by which the printer driver is known:
iprntman driver linux -l
b. Associate the printer driver to the printer agent:
Syntax:
iprntman printer <PrinterAgentName> -m --driver-linux "<name as shown from the 'iprntman driver linux -l' command"

Example:
iprntman printer HPLJ-1320-3rdFloor -m --driver-linux "HP LaserJet 1320, hpcups 3.11.10"
4. Disable and re-enable for mobile printing.
The printer driver association made above won't take effect for mobile printing rendering until the printer agent is disabled for mobile printing, then re-enabled.  This is accomplished by:
  • Go to the iPrint Appliance Configuration printers page
    • https://<ip or dns of iPrint Appliance server>:9443/iprintconfig/printers
  • Highlight the printer agent which recently had the driver changed
  • Click Mobile -> Disable
  • Click Mobile -> Enable
5. Test printing
The output should be different than what it was prior to performing the above steps.

Additional Information

The iPrint Appliance version 1.1 introduced the ability to assign specific Linux printer drivers to individual printer agents.  The same ability exists in the 2.x and 3.x versions of the iPrint Appliance.

The steps in the Resolution section of this TID shows how to use the Linux printer drivers (PPDs) which ship with the iPrint Appliance.  PPDs obtained from other sources (such as  http://www.openprinting.org/printers) can also be uploaded to the Driver Store.  However, the iPrint Appliance does not support all of the filters used by the various PPDs obtained from external sources.  When the PPD references a filter which the Appliance does not support, print jobs submitted via mobile devices will be canceled or aborted.

One common filter which may be of use to install is the hplip filter. 
Note: The printer drivers in the /usr/share/cups/model/manufacturer-PPDs/hplip directory do not use the hplip filter. View the PPD content (a PPD is a text file) and search for the word 'filter'.  If hpcups or hplip is listed as a filter, you must install hplip to the iPrint appliance for that PPD to be a valid option.
To install the hplip filter:
mkdir /tmp/hplip
wget -P /tmp/hplip ftp://ftp.novell.com/outgoing/hplip-ForAppliance.tar.gz
tar xvzf /tmp/hplip/hplip-ForAppliance.tar.gz
rpm -Uvh /tmp/hplip/*.rpm

Note:  If the hplip-ForAppliance.tar.gz file does not exist on the Novell FTP outgoing site, email patchfeedback@novell.com with the subject of "Need hplip for the iPrint Appliance".  An email will be sent in reply notifying you when that file has be re-added.
When choosing a ppd to assign to a printer, a generic ppd is often a good choice.  Some examples of generic printer drivers are:
/usr/share/cups/model/Postscript-level2.ppd.gz
/usr/share/cups/model/Postscript.ppd.gz
/usr/share/cups/model/deskjet.ppd.gz
/usr/share/cups/model/laserjet.ppd.gz

Other strategies include testing a PostScript vs PCL driver.  Often a printer driver for a specific printer model will work for a different model and even different manufacturer printer.  The key is use a printer driver which matches the printer language which is supported by the printer type (PostScript or PCL).

If an remote renderer is configured (also known as a Windows renderer), none of the above configuration applies.  All print jobs, regardless of the format, will be rendered by the remote, Windows renderer as long as it is active.