foo2zjs-icc2ps
Convert ICC profile to PostScript color space
SYNOPSIS
foo2zjs-icc2ps [-p<papersize>] [-l<length>] [-w<width>] [-x<xoff>] [-y<yoff>] [-s<xres,yres>] [-d<density>] [-g] [-c] [-n] [-V] <iccfile> <psfile>
PARAMETERS
-p papersize
Set paper size (e.g., Letter, A4; from PPD file)
-l length
Paper length in inches (default from -p)
-w width
Paper width in inches (default from -p)
-x xoff
X offset from left margin, inches
-y yoff
Y offset from bottom margin, inches
-s xres,yres
Page resolution in DPI (e.g., 600,600)
-d density
Toner/ink density as percentage (0-100)
-g
Generate grayscale PostScript
-c
Generate CMYK PostScript (default: RGB)
-n
No DeviceLink optimization; use full profile
-V
Verbose output
DESCRIPTION
The foo2zjs-icc2ps command is a specialized utility from the open-source foo2zjs printer driver suite. It converts ICC (International Color Consortium) color profiles into embeddable PostScript code, enabling accurate color management for printers using the ZjStream protocol, such as HP LaserJet 1000/1005 series, Lexmark E120n, Dell Laser, and others.
This tool generates PostScript separations or DeviceLink profiles that perform color space transformations (RGB to CMYK or grayscale). The output is typically inserted into PPD (PostScript Printer Description) files for use with foo2zjs-wrapper and Ghostscript, allowing color-calibrated printing from CUPS or direct PS rendering.
Key features include customizable paper dimensions, resolution settings, ink density adjustments, and support for different color models. It's invaluable for photographers, graphic designers, and users seeking precise color fidelity on budget laser printers without proprietary drivers. The process involves specifying input ICC file (e.g., from printer manufacturer or ArgyllCMS) and generating a PS file for driver integration.
CAVEATS
Input must be a valid ICC v2 or v4 profile; output PS is not standalone printable but for PPD embedding. Requires foo2zjs package and Ghostscript. May not support all ICC profile types (e.g., no display profiles). Test on target printer.
USAGE EXAMPLE
foo2zjs-icc2ps -p Letter -s 600,600 printer.icc printer-correction.ps
Generates Letter-sized 600dpi RGB correction PS.
PPD INTEGRATION
Insert generated PS into foo2zjs PPD via *cupsICCProfile: "%%BeginICCProfile" ... "%%EndICCProfile". Reinstall PPD in CUPS.
HISTORY
Developed by Toby Thain as part of the foo2zjs project (~2003-2010), reverse-engineering ZjStream for Linux printing support. Actively maintained on SourceForge; integrated into major distros like Ubuntu, Fedora.
SEE ALSO
foo2zjs-wrapper(1), foo2zjs(1), gs(1), cupsd(8)


