Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Mail Systems
Eclipse Documentation

How To Guides
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Problem Solutions
Privacy Policy




Samba HowTo Guide
Prev Home Next

foomatic-rip and Foomatic PPD Download and Installation

Here are the steps to install a foomatic-rip-driven LaserJet 4 Plus-compatible printer in CUPS (note that recent distributions of SuSE, UnitedLinux and Mandrake may ship with a complete package of Foomatic-PPDs plus the foomatic-rip utility. Going directly to ensures that you get the latest driver/PPD files).

  • Open your browser at the printer list page.

  • Check the complete list of printers in the database..

  • Select your model and click on the link.

  • You'll arrive at a page listing all drivers working with this model (for all printers, there will always be one recommended driver. Try this one first).

  • In our case (HP LaserJet 4 Plus), we'll arrive at the default driver for the HP-LaserJet 4 Plus.

  • The recommended driver is ljet4.

  • Several links are provided here. You should visit them all if you are not familiar with the database.

  • There is a link to the database page for the ljet4. On the driver's page, you'll find important and detailed information about how to use that driver within the various available spoolers.

  • Another link may lead you to the home page of the author of the driver.

  • Important links are the ones that provide hints with setup instructions for CUPS; PDQ; LPD, LPRng, and GNUlpr); as well as PPR or “spoolerlessprinting.

  • You can view the PPD in your browser through this link:

  • Most importantly, you can also generate and download the PPD.

  • The PPD contains all the information needed to use our model and the driver; once installed, this works transparently for the user. Later you'll only need to choose resolution, paper size, and so on, from the Web-based menu, or from the print dialog GUI, or from the command line.

  • If you ended up on the drivers page, you can choose to use the “PPD-O-Matic” online PPD generator program.

  • Select the exact model and check either Download or Display PPD file and click Generate PPD file.

  • If you save the PPD file from the browser view, please do not use cut and paste (since it could possibly damage line endings and tabs, which makes the PPD likely to fail its duty), but use Save as... in your browser's menu. (It is best to use the Download option directly from the Web page.)

  • Another interesting part on each driver page is the Show execution details button. If you select your printer model and click on that button, a complete Ghostscript command line will be displayed, enumerating all options available for that combination of driver and printer model. This is a great way to “learn Ghostscript by doing”. It is also an excellent cheat sheet for all experienced users who need to reconstruct a good command line for that darned printing script, but can't remember the exact syntax.

  • Sometime during your visit to, save the PPD to a suitable place on your hard disk, say /path/to/my-printer.ppd (if you prefer to install your printers with the help of the CUPS Web interface, save the PPD to the /usr/share/cups/model/ path and restart cupsd).

  • Then install the printer with a suitable command line, like this:

    lpadmin -p laserjet4plus -v parallel:/dev/lp0 -E \
    		-P path/to/my-printer.ppd
  • For all the new-style “Foomatic-PPDs” from, you also need a special CUPS filter named foomatic-rip.

  • The foomatic-rip Perl script itself also makes some interesting reading because it is well documented by Kamppeter's in-line comments (even non-Perl hackers will learn quite a bit about printing by reading it).

  • Save foomatic-rip either directly in /usr/lib/cups/filter/foomatic-rip or somewhere in your $PATH (and remember to make it world-executable). Again, do not save by copy and paste but use the appropriate link or the Save as... menu item in your browser.

  • If you save foomatic-rip in your $PATH, create a symlink:

    cd /usr/lib/cups/filter/ ; ln -s `which foomatic-rip'

    CUPS will discover this new available filter at startup after restarting cupsd.

Once you print to a print queue set up with the Foomatic PPD, CUPS will insert the appropriate commands and comments into the resulting PostScript job file. foomatic-rip is able to read and act upon these and uses some specially encoded Foomatic comments embedded in the job file. These in turn are used to construct (transparently for you, the user) the complicated Ghostscript command line telling the printer driver exactly how the resulting raster data should look and which printer commands to embed into the data stream. You need:

  • A “foomatic+something” PPD but this is not enough to print with CUPS (it is only one important component).

  • The foomatic-rip filter script (Perl) in /usr/lib/cups/filters/.

  • Perl to make foomatic-rip run.

  • Ghostscript (because it is doing the main work, controlled by the PPD/foomatic-rip combo) to produce the raster data fit for your printer model's consumption.

  • Ghostscript must (depending on the driver/model) contain support for a certain device representing the selected driver for your model (as shown by gs -h ).

  • foomatic-rip needs a new version of PPDs (PPD versions produced for cupsomatic do not work with foomatic-rip).

Samba HowTo Guide
Prev Home Next

  Published under the terms fo the GNU General Public License Design by Interspire