PPD files vs printer drivers also LPD vs LPRng vs CUPS
Warren Block
wblock at wonkity.com
Sat Nov 10 16:18:04 PST 2007
On Sat, 10 Nov 2007, Predrag Punosevac wrote:
> I am trying to understand little bit better Unix printing. I am
> terribly confused about the real meaning of PPD files and printer
> drivers.
>
> According to this http://en.wikipedia.org/wiki/PostScript_Printer_Description
>
> PPD files are post script description files that act as a drivers for post
> script printers.
PPDs are files that describe what a PostScript printer can do. They may
have PostScript routines in them that can be used by a driver to take
advantage of the printer's abilities.
> According to same page CUPS-PPD are used by CUPS to do post-script
> printing on non-postscript printers by directing files through
> CUPS-filter. Could somebody explain this things better to me. Every
> time I used CUPS the PPD files where enough to enable me printing. Did
> I really use some other drivers beside these PPD files or did CUPS
> communicate with my printers with some generic driver and just uses
> PPD files to do filtering.
Can't comment much on CUPS; I've never had the patience to work on it
much. I prefer to have the responsibility to send correctly-formatted
files to the printer myself, rather than have a filter system try to
format things automatically.
> What is the simplest way to send ps file to the printer that doesn't speak
> ps? If I could do that everything else is peace of cake.
Ghostscript is used to render a PostScript file into something the
printer can handle. Ghostscript has a lot of built-in printer drivers.
For example:
/usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=ljet4 -sOutputFile=- -
That takes PostScript on stdin and converts to PCL on stdout.
If you save that to /usr/local/libexec/ps2pcl and make it executable,
you can use it as an input filter in a printcap entry.
gs -h will show you a list of built-in printer drivers in Ghostscript.
> Could anybody explain me if there are some strong reasons for choosing LPD
> over CUPS or LPRng system (seems just GUI added on the top of LPD)
> It would logical to me that LPD is safer (CUPS port has some security
> warnings) and maybe more reliable. In any case it is included in the base
> system and I prefer to use something included in the base system
Printer filter systems have varying degrees of complexity and
dependencies. lpd with simple filters is probably the simplest, with
the lowest overhead because it's part of the base system.
-Warren Block * Rapid City, South Dakota USA
More information about the freebsd-questions
mailing list