10.4: Use some PostScript level 1 printers with CUPS

Apr 06, '07 07:30:00AM

Contributed by: protean

Sometime in Tiger's evolution, the CUPS implementation restricted PostScript (PS) printers to level 2 and higher. I have found that some PS level 2 and higher printers, including (read "especially") networked photocopiers, have an omission in their PPD files that prevents them from working properly with CUPS. The symptom is that when you print, your system displays the following message:

The process "cgpdftops" stopped unexpectedly with status 1

CUPS runs a series of filters prior to processing a job, and part of their job is to determine the PS level of the destination printer. If you are confident your PS device is level 2 or higher, look at the PPD you assigned to your printer (located in /Library/Printers).

Using your favorite text editor, check near the top, usually in this section:

*% ===================================
*% Basic Device Capabilities
*% ===================================
Look for this line:
*LanguageLevel: "2"
where the "2" may be a "1" or "3". If it is a "1", then your device is not supported by CUPS, but read on anyway for a partial remedy. If the line is missing altogether, then insert one of these lines, depending on your printer's PS level:
*LanguageLevel: "2"
*LanguageLevel: "3"
Save your work. Delete the printer using Printer Setup Utility, and recreate it, being sure to manually choose the PPD you just edited and saved.

For PS level 1 devices, I have found that creating the printer with no PPD file at all can fool the CUPS filters into printing to a level 1 printer. You will lose out on any special features of your device, but it will extend its life a little. As with any printing problem, setting the log level to "debug" and HUPing CUPS will provide loads of information to help troubleshoot.

Comments (5)


Mac OS X Hints
http://hints.macworld.com/article.php?story=20070404143518495