LinuxCommandLibrary

foomatic-rip

Convert print jobs to printer-specific formats

SYNOPSIS

foomatic-rip [options] [job-files]

PARAMETERS

-h, --help
    Display help message and exit.

-V, --version
    Output version information and exit.

--ppd=<FILE>
    Specify PPD file for the printer.

-d <DEVICE>
    Send output to printer device <DEVICE>.

-v, --verbose
    Increase verbosity level for debugging.

--debug
    Enable debug mode with detailed logging.

-m <MODEL>
    Select printer model from Foomatic database.

--list-xml
    List available printers in XML format (deprecated).

-P <PRINTER>
    Set printer name for job accounting.

-o <OPTION>
    Pass printer option (CUPS-style, repeatable).

--cups-options=<OPTS>
    Parse CUPS options from string.

-j <JOB-ID>
    Set job ID for logging.

-u <USER>
    Set job owner username.

DESCRIPTION

foomatic-rip is the core raster image processor (RIP) of the Foomatic printing system, a comprehensive database-driven framework for printer support on Linux and Unix-like systems. It processes print jobs from spoolers like CUPS or LPRng, interpreting PPD (PostScript Printer Description) files to invoke appropriate drivers, usually Ghostscript, for generating printer-specific output such as PCL, PostScript, or raster data.

The command reads print data from stdin or files, applies filters defined in the PPD (e.g., resolution, color mode, paper size), and pipes output to the printer device or backend. This enables support for over 5000 printers without custom spooler drivers. It's invoked automatically by print spoolers but can run standalone for testing.

Key strengths include extensibility via XML-based printer descriptions and seamless integration with CUPS. However, it relies on Ghostscript for most rendering, inheriting its capabilities and limitations. Widely used in servers and legacy setups, it's essential for non-driverless printing workflows.

foomatic-rip handles options transparently, passing user-specified settings (e.g., via lp -o) through to drivers, ensuring consistent output across diverse hardware.

CAVEATS

Requires Foomatic PPDs and Ghostscript installed; deprecated for driverless CUPS printing (IPP Everywhere); debug output can be verbose and may leak sensitive data; not for direct user invocation outside spoolers.

STDIN USAGE

Typically reads PostScript/PDF from stdin in spoolers; use files for testing: foomatic-rip --ppd printer.ppd file.ps.

EXIT CODES

0: success; 1: general error; 2: PPD/driver issue; 3: Ghostscript failure; check logs with --debug.

HISTORY

Originated in the Foomatic project (1996) by Till Kamppeter for Linux Printing HOWTO; evolved under OpenPrinting.org; integrated with CUPS since 2002; maintained for legacy support as CUPS shifts to driverless in versions 2.4+ (2020s).

SEE ALSO

lp(1), lpr(1), gs(1), enscript(1), cupsfilter(8)

Copied to clipboard