Mailinglist Archive: opensuse (3653 mails)

< Previous Next >
Re: [SLE] Printer drivers.
  • From: John Lamb <J.D.Lamb@xxxxxxxxxxxxxx>
  • Date: Sat, 01 Jun 2002 10:17:30 +0000
  • Message-id: <3CF89F3A.6090308@xxxxxxxxxxxxxx>
I'll probably get some of this wrong, but essentially...

Printing is a multistage process in linux. First, the application, e.g.
Mozilla, StarOffice, KWord, produces PostScript output and uses a
command called lp to send this to a printer, typically with some
commandline options.

lp was originally a BSD unix command that sent the file to be dealt with
by the lpd daemon, a background process. Originally lpd would have
handled a queue of jobs going to the printer. All of them would be
PostScript files and the queuing (or spooling) system would make sure
you didn't try to print two jobs at once.

Several intermediate stages have been introduced. First, if the printer
wasn't a true PostScript printer (like most inkjets) then instead of
spooling the PostScript directly to the printer, it would get sent first
to Ghostscript, which can create a raster image suitable for printing,
then to a printer driver, that can send the raster image to the printer.
gimp-print is an example of a printer driver.

Second, there are usually some simple filters so that if you try to send
something other than PostScript, it gets turned into PostScript before
being sent on to the printer (or ghostscript). a2ps is an example of one
that can be used to convert ascii to PostScript. These filters allows
things like
# man lp | lp
to work seemlessly (if you don't know how to use man -t).

Third, there are some limitations on BSD lp. CUPS and (I think)
turboprint and foomatic give greater functionality by allowing you to
print to networked printers, specify default printer settings and
resolutions, etc., and I think handling any filtering for you.

CUPS and foomatic need to know what parameters to send to ghostscript,
e.g. so that it knows the page size, horizontal and vertical resolution,
papertype, etc. for the printer that the job is going to get sent to.
These are stored in a PostScript PPD file. It makes sense to distribute
the PPD files along with the printer-driver (e.g. gimp-print) rather
than with CUPS or foomatic, because there is no point in having a PPD
file for a printer that you don't have a driver for.

JDL


Brian Durant wrote:
> Is there someone out there that can explain the relationship between CUPS,
> Gimp-Print, Turbo Print, etc.? I am using SuSE 7.3 Pro and still trying to
> get my new Epson Stylus C80 to work. I think that somewhere, I am lacking
> some information to understand how printing works under SuSE. I need to
> understand why you need both CUPS and Gimp-Print, why Turbo Print requires
> Ghostscript, etc. Can all of the above coexist? I do however, realize that
> some of the above are GPL and others are commercial products, so we don't
> need to get into that. Is there a URL that will cover this?
>
> Cheers,
>
> Brian
>
>



--

Non enim propter gloriam, diuicias aut honores pugnamus set propter
libertatem solummodo quam Nemo bonus nisi simul cum vita amittit.



< Previous Next >
References