
Foomatic is a configurable printing filter. It uses
PPD files as configuration to generate appropriate output for a given printer. It is
spooler independent which means it can be used with
Common Unix Printing System (CUPS),
LPRng and others.
It uses
Ghostscript
Ghostscript is a suite of software based on an interpreter for Adobe Systems' PostScript and Portable Document Format (PDF) page description languages. Its main purposes are the rasterization of documents in these language,, the display or prin ...
in the background, using options according to the PPD file of the printer. Currently it is developed by the
OpenPrinting workgroup of the
Linux Foundation
The Linux Foundation (LF) is a non-profit organization established in 2000 to support Linux development and open-source software projects.
Background
The Linux Foundation started as Open Source Development Labs in 2000 to standardize and prom ...
.
Operation
Like CUPS, foomatic supposes that applications will produce output in
PostScript
PostScript (PS) is a page description language and dynamically typed, stack-based programming language. It is most commonly used in the electronic publishing and desktop publishing realm, but as a Turing complete programming language, it c ...
. If the output spools to a PostScript printer, no further action is needed. Otherwise, the most generic way to act is:
* Create a
raster file from the PostScript (ps2raster, usually using Ghostscript in the background)
* Create a
printer-language file from the raster data (raster2xxx, using the raster driver of the target printer)
* Send the printer-language file to the printer
But if foomatic-rip "knows" about the available printer, it will translate the PostScript data directly to the printer's language, without creating the intermediate raster file.
Description of the package
The components of the package are:
;foomatic-filters (or "foomatic-rip")
:It transforms PostScript data to raster (or to the printer's native language), using the PPD as configuration. It needs a low level driver (specific to each printer) to generate the final code.
;foomatic-tools
:foomatic-db-engine: A tool that generates PPD files from the data in Foomatic's database. It also contains scripts to directly configure print queues and handle jobs.
:foomatic-db: The collected knowledge about printers, drivers, and driver options in XML files, used by foomatic-db-engine to generate PPD files.
:foomatic-db-hpijs: Foomatic XML data generators for HP's HPIJS driver.
Free drivers that can interface with foomatic
The following free drivers were specifically developed to work with foomatic:
pxlmonoan
pxlcolor to work with
HP LaserJet
LaserJet is a line of laser printers sold by HP Inc. (originally Hewlett-Packard) since 1984. The LaserJet was the world's first commercially successful laser printer. Canon supplies both mechanisms and cartridges for most HP laser printers; so ...
s
ljet4 also for LaserJet printers
, for
PCL inkjet printers
SpliX for Samsung Printer Language
gdi for Samsung SmartGDI
ptouch-driver for Brother P-touch series of label printers
Spoolers that can interact with foomatic
*
CUPS
*
LPRng
*
LPD
* GNUlpr (see it
SourceForge page
*
Solaris LP
* PPR
* CPS
* Direct printing (no spooler)
References
External links
Foomatic page{{Webarchive, url=https://web.archive.org/web/20160527062127/http://www.linuxfoundation.org/collaborate/workgroups/openprinting/database/foomatic , date=2016-05-27
Foomatic pageretrieved 2025-03-16
Computer printing
Linux