[cups.general] Where to get PPD files?

Kurt Pfeifle k1pfeifle at gmx.net
Thu Nov 1 13:10:42 PDT 2007


John Jason Jordan wrote:
> On Thu, 01 Nov 2007 08:27:47 -0700
> Kurt Pfeifle <k1pfeifle at gmx.net> dijo:
> 
>> John Jason Jordan wrote:
>>> First, I said I had a 4M Plus, not a 4L. But that's OK, I had already
>>> been there. I ended up at:
>>> http://openprinting.org/show_printer.cgi?recnum=HP-LaserJet_4M_Plus
>>> And there is no option to download a PPD file.
>> Indeed. Something is not working any more on that website...
>>
>> However, you should be able to print out stuff on the 4M Plus using
>> the "laserjet.ppd" that ships with CUPS.
>>
>> Check if it is installed on your system:
>>
>>    su
>>    lpinfo -m |grep laserjet.ppd
> 
> This resulted in a list of lots of PPD files, only two of which said
> "HP" in the name of the vendor, and neither was for a 4M+. 

The CUPS-shipped "laserjet.ppd" is a generic PPD, that allows you to
print to thousands of different PCL printers. Including the 4M Plus.

> However,
> there was something really strange in the list. Lots of entries like
> the following:
> 
> foomatic:Kyocera-P-2002-laserjet.ppd Kyocera P-2002 Foomatic/laserjet
> foomatic:Okidata-OL400-laserjet.ppd Okidata OL400 Foomatic/laserjet
> (recommended)
> 
> Now, this confuses the devil out of me. I thought "laserjet" was a
> trademark of Hewlett-Packard. 
> 
>>    ls -l /usr/share/cups/model/laserjet*
> 
> This just resulted in "no such file."

laserjet.ppd definitely ships with CUPS. As well as about a dozen more
generic PPDs (most noteable: the deskjet.ppd, the stcolor.ppd, dymo.ppd,
okidata.ppd, epson9.ppd, epson24.ppd, stphoto.ppd,....)

If it is missing on your system, you....

 a/  either picked an OS vendor who doesn't provide the original CUPS
     software
 b/  or missed to install your OS vendor's sub-package of the CUPS
     PPDs
 c/  or was the victim of my own inability to see from my side of the
     ocean which modified path your OS vendor chose to install the
     CUPS PPDs into.

> This whole PPD file issue is a mess, part of which is caused by my
> failure to grasp what a PPD file does. I thought that you didn't need a
> PPD file for a non-PostScript printer (e.g., the 4+, which has PCL
> only), and that if you wanted to use a printer in PostScript mode the
> PPD file was required. 

If you read a bit background documentation about CUPS' driver archi-
tecture, you'd quickly learn that CUPS

 (1) uses PostScript as its core/hup print spooling format
 (2) converts non-PS job input files like (text, pictures, PDF)
     into PostScript
 (3) converts PostScript to any other printer format, should the
     target printer be non-PS
 (4) uses the PPD syntax and PPD files to control the options of
     all jobs that are send to CUPS as PS input, or that CUPS it-
     self converted to PS
 (5) uses an ingenious hack to the original PPD syntax (which uti-
     lizes the '*keyWordXYZ:' keyword syntax described in the PPD
     spec) to indicate any required for PS-to-NonPS conversion
     steps that may be need for the target printer (look for lines
     starting "*cupsFilter: " in the PPDs).

Some background information is here:

   http://us4.samba.org/samba/docs/man/Samba-HOWTO-Collection/classicalprinting.html
   http://us4.samba.org/samba/docs/man/Samba-HOWTO-Collection/CUPS-printing.html

> Yet, the file I used says it is for the 4+ or 4M
> +. 
> 
> Adding to the confusion, the files usually have a cryptic name in order
> to keep them in the ancient 8.3 format, and I haven't found any web
> site with a cross-reference to the actual brand and model of the
> printer. For example, when I unzipped the .exe file from Adobe I got 39
> files with names like "BGHP30W1.PPD." That makes it pretty hard to
> figure out which is the correct PPD file. 

Look for these keywords in the PPD file:

  *Manufacturer:, *Product:, *ModelName:, *ShortNickName:, *NickName:

CUPS puts all PPDs into /usr/share/cups/model/<subdirs>. The "lpinfo"
command I showed you, extracts some of these keywords' values to display
them to users and admins. KDE's "kaddprinterwizard" and other GUI admin
tools do the same. As does the CUPS web interface.

Don't forget, there is a man page for "lpinfo" as well.

> In my case I guessed that it
> had to be HP4PLUS3.PPD or HP4PLUS6.PPD. I knew that PPD files are text
> files, so I opened each one in Gedit. Reading down to about the 20th
> line I found a reference that one was for the HP4+ or 4M+ at 300 dpi
> and the other was for 600 dpi. I used the HP4PLUS6.PPD file and it
> seems to work. However, I have no idea if it is actually using the
> PostScript SIMM installed in the printer, 

I don't know it either. :-)

But I know this: if you have a line saying "*cupsFilter:.....", it
is not using the PostScript SIMM in the printer.

However, if you recently bought that SIMM, you should ask your ven-
dor to provide you with the PostScript driver as well. Your vendor
likely will only have one for Windows and/or Mac OS X. In any case,
that driver will contain a PPD. Use that with CUPS, and you are done.

> or if the other driver I
> installed (where I did not use a PPD file) 

There is no "driver" in CUPS without a PPD. If you don't have a PPD,
it is a "raw" queue, which means: CUPS does not do any filtering of
print jobs. If you *can* print to that queue from most applications,
it means that your PostScript SIMM is working, because most apps don't
know other than create PostScript for printing.

> is a PCL only driver. When
> you go to install a new printer in CUPS (Gutsy amd64) there are a
> bewildering array of options (foomatic, gutenprint, use PPD file or
> not?) and I can't figure out which to use. 

Now that you said "Gutsy", I'll refrain from advicing you to use the
CUPS web interface. *buntu packagers decided it was better to cripple
the CUPS web interface of for their users.

Otherwise, recent CUPS versions do a pretty good job in auto-detecting
locally or network-connected printers, and also suggest a well matching
PPD from all those found on the system.

> I just want to be able to
> install the driver for the printer without first needing a degree in
> computer science.

I can assure you a lot of CS degree holders have no clue about printing
either :-)    Even if it is about the oh-so-easy Windows printing....


> OK, enough ranting. I'll shut up now. :)

-- 
Kurt Pfeifle
System & Network Printing Consultant ---- Linux/Unix/Windows/Samba/CUPS
Infotec Deutschland GmbH  .....................  Hedelfinger Strasse 58
A RICOH Company  ...........................  D-70327 Stuttgart/Germany




More information about the cups mailing list