how to make a ppd for unsupported PCL printer?

Asked by Jakub Paluszak

I have a PCL printer (Xerox WorkCenter 7435) which works fine with hpijs, however, I'm not able to set advanced features like duplex printing. I got a full description of specific PCL and PJL commands from Xerox and I'd like to make a ppd file for hpijs/cups. Is there any tutorial or description on how to make such a file?

Question information

Language:
English Edit question
Status:
Answered
For:
HPLIP Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Johannes Meixner (jsmeix) said :
#1

Regarding PPD syntax, use Google to search the
"PostScript Printer Description File Format Specification"
from Adobe (you can download it as PDF from Adobe).

In your particular case "PCL+PJL printer" - as far as I know - the
hpijs printer driver produces only the plain PCL but no PJL.

It might help to have a look at the "PCL+JCL Printers " sections in
http://en.opensuse.org/SDB:Information_for_Printer_Manufacturers_Regarding_Linux_Support

Additionally it might help to read
http://en.opensuse.org/SDB:Using_Your_Own_Filters_to_Print_with_CUPS
what you could do as some first steps or as workaround
by using selfmade filter scripts.

If you had a PostScript+PJL printer, it would be sufficient to add
a section like the following to the PPD file to set options via PJL
(here only the resolution via PJL as one single example):
----------------------------------------------------------------------------------
*Protocols: PJL
*JCLBegin: "<1B>%-12345X@PJL JOB<0A>"

*JCLOpenUI *JCLResolution/JCL Resolution: PickOne
*DefaultJCLResolution: 600x600dpi
*JCLResolution 300x300dpi/300 dpi: "@PJL SET RESOLUTION = 300<0A>"
*JCLResolution 600x600dpi/600 dpi: "@PJL SET RESOLUTION = 600<0A>"
*JCLCloseUI: *JCLResolution

*JCLToPSInterpreter: "@PJL ENTER LANGUAGE = POSTSCRIPT<0A>"
*JCLEnd: "<1B>%-12345X@PJL EOJ <0A><1B>%-12345X"
----------------------------------------------------------------------------------

But with a PCL+PJL printer it becomes much more difficult
because whatever PJL was inserted by the pstops filter
will be later removed by the subsequent foomatic-rip filter
when this filter lets Ghostscript+hpijs produce the PCL.
I.e. you would need some additional filter which adds
your particular PJL snippets to the PCL after the PCL
was made (not before as the pstops filter does it
for PostScript printers).

Revision history for this message
Jakub Paluszak (paluszak) said :
#2

Thanks a lot, it helped a lot. Unfortunately, the printer we have was bought without a PS module and buying a PS module, though being the simplest solution, is currently out of the question. I'm going to make a small custom script when I find some spare time and I'll publish it somewhere then.

However helpful and competent Xerox staff was, I have to give Xerox a big thumbs down for only partial Linux support for their products. I used quite a range of office grade printers and most of them worked without a glitch in Linux.

Revision history for this message
Anitha Mani (hplipsupport) said :
#3

Jakub,

Please change the status to solved, if you got an answer. For any further queries related to HPLIP, submit a ticket in this forum.

Thanks,
Anitha

Can you help with this problem?

Provide an answer of your own, or ask Jakub Paluszak for more information if necessary.

To post a message you must log in.