pnm2ppa - convert portable anymap (PNM) to HP’s Printing Performance Architecture (PPA) file format


pnm2ppa [options] [ -i infile ] [ -o outfile ]


Reads portable anymap (PNM) format as input. (Currently, only the pixmap (PPM) subset of PNM is supported). Outputs a stream suitable for processing by Hewlett-Packard’s range of Printing Performance Architecture (PPA) printers. Currently, pnm2ppa supports the HP 710c, 712c, 720c, 722c, 820c, and 1000c series printers.

(Portable pixmap (PPM) format output can be produced from PostScript(tm) input by the GhostScript driver "ppmraw".)


−b bottommargin

Sets the bottom margin bottommargin in units of 1/600 inches (e.g., -b 150 = 0.25")


Disables the color cartridge; will print in grey scale using only the black cartridge


Displays the current configuration


Econofast mode: lower print quality that is faster and saves ink.

−f configfile

Overrides reading the configuration from /etc/pnm2ppa.conf, and uses configfile instead.


Enable fast ordered dithering instead of using the slower, but beautiful, Floyd-Steinberg dithering


Generates gamma.ppm in the current working directory. This file, once post-processed through pnm2ppa and printed, is suitable for the CALIBRATION procedure. See CALIBRATION for more details.

−h, --help

Displays program usage

−i infile

Input file infile is either a path to a PPM file, or ’-’ to indicate stdin (defaults to stdin)

−l leftmargin

Sets the left margin leftmargin in units of 1/600 inches (e.g., -l 150 = 0.25")


Do not use the Gamma calibration file

−o outfile | -

Output file outfile is either a path to a file or device, or ’-’ to indicate stdout (defaults to stdout)


Disables the black ink cartridge; i.e., print using only the color ink cartridge, even for printing "black"

−r rightmargin

Sets the right margin rightmargin in units of 1/600 inches (e.g., -r 150 = 0.25")

−s papersize

Sets the paper size. Possible values for papersize are a4 (A4), letter or us (US Letter, 8.5"x11"), and legal (US Legal, 8.5"x14"). The default is US Letter.

−t topmargin

Sets the top margin topmargin in units of 1/600 inches (ie -t 150 = 0.25")

−v printertype

Selects the printer model. Possible values of printertype are: 710, 712, 720, 722, 820 and 1000. The default is the HP DeskJet 7X0 Series (710, 712, 720, 722).


Displays the program’s System Log messages on the standard output, as well.


Displays the program’s version information

−x xoffset

Sets the x-offset xoffset from the left of the page. Units are 1/600 inches

−y yoffset

Sets the y-offset yoffset from the top of the page. Units are 1/600 inches


The configuration file is read in first. Command line arguments then modify the resulting definitions.

The -x and -y options accumulate. The -v option resets all definitions back to an inbuilt default for that printer and should be used before subsequent -b -l -r, -t, -x, and -y arguments.





Default configuration file


Default Gamma calibration file


This code is licensed under the GNU Public License version 2. See LICENSE for details.

(c) 1998-1999

Tim Norman

(c) 1999

Giorgio Marzano

(c) 1999

Andrew van der Stock

(c) 1998-1999

Various authors for many, many fixes


This program was originally pbm2ppa, written by Tim Norman. It originally supported black and white output on the 820 series. Tim added nascent color support in early 1999. In May 1999, Giorgio Marzano starting making real headway in getting color support working properly. By September 1999, it was working pretty well. Andrew van der Stock started working on the code in late September and made everyone very nervous.


At this stage, plenty. It’s very harsh about differing paper sizes - it will stop processing if they don’t match.