1. NAME

pbmtoppa - convert PBM image to HP Printer Performance Architecture (PPA)

2. SYNOPSIS

pbmtoppa [ pbm_file [ ppa_file ]]

3. DESCRIPTION

pbmtoppa converts page images in PBM format to Hewlett Packard's PPA (Printer Performance Architecture) format, which is the data stream format expected by some HP "Windows-only" printers including the HP Deskjet 820C series, the HP DeskJet 720 series, and the HP DeskJet 1000 series. pbm_fileis the file specification of the input file or

- for Standard Input. The default is Standard Input. The input file contains one or more PBM images, with each one being a single page. Each image must have the exact dimensions of a page (at 600 pixels per inch in both directions). Significantly, this is the format the Ghostscript produces. ppa_fileis the file specification of the output file or

- for Standard Output. The default is Standard Output. To print Postscript on an HP PPA printer, just use Ghostscript with the

pbmraw (or

R pbm ) device driver. You can generate a test page for use with this program with

R pbmpage . You can also set up a printer filter so you can submit PBM input directly to your print queue. See the documentation for your print spooler for information on how to do that, or look in hp820install.doc for an example lpd print filter for Postscript and text files. Sometimes,

pbmtoppa generates a file which the printer will not print (because

R pbmtoppa 's input is unprintable). When this happens, all three lights blink to signal the error. This is usually because there is material outside of the printer's printable area. To make the file print, increase the margins via

pbmtoppa options or a configuration file. See the CALIBRATION section below.

4. OPTIONS

  • -v version
        printer version (720, 820, or 1000)
  • -x xoff
        vertical offset adjustment in 1"/600
  • -y yoff
        horizontal offset adjustment in 1"/600
  • -t topmarg
        top margin in 1"/600 (default: 150 = 0.25")
  • -l leftmarg
        left margin in 1"/600 (default: 150 = 0.25")
  • -r rightmarg
        right margin in 1"/600 (default: 150 = 0.25")
  • -b botmarg
        bottom margin in 1"/600 (default: 150 = 0.25")
  • -s paper
        paper size:

us or

R a4 . Default is

R us .

  • -f cfgfile
        read parameters from configuration file cfgfile

The

-x and

-y options accumulate. The

-v option resets the horizontal and vertical adjustments to an internal default.

5. CONFIGURATION FILES

You can use configuration files to specify parameters rather than use invocation options.

pbmtoppa processes the file /etc/pbmtoppa.conf, if it exists, before processing any options. It then processes each configuration file named by a

-f option in order, applying the parameters from the configuration file as if they were invocation options used in the place of the

-f option. Configuration files have the following format: # Comment
key1value1
key2value2
[etc.] Valid key s are

R version ,

R xoffset ,

R yoffset ,

R topmargin ,

R leftmargin ,

R rightmargin ,

R bottommargin ,

R papersize , or any non-null prefix of these words. Valid values are the same as with the corresponding invocation parameters.

6. EXAMPLES

Print a test pattern:

pbmpage | pbmppa >/dev/lp1 Print three pages:

cat page1.pbm page2.pbm page3.pbm | pbmppa >/dev/lp1 Print the Postscript file myfile.ps: \fBgs -sDEVICE=rawpbm -q -dNOPAUSE -r600 \\
-sOutputFile=- myfile.ps \\
| pbmtoppa | lpr \fR

7. CALIBRATION

To be able to print successfully and properly, you need to tell

pbmtoppa an X and a Y offset appropriate for your printer to use when generating the page. You can specify these offsets with the

-x and

-y invocation options or with the

xoff and

yoff parameters in a

pbmtoppa configuration file. To determine the correct offsets, use the

pbmpage program. If while trying to do this calibration, the printer refuses to print a page, but just blinks all three lights, specify large margins (e.g. 600 pixels -- one inch) via

pbmpage invocation options while doing the calibration. For example:

pbmpage | pbmtoppa >/dev/lp1
or

pbmpage | pbmtoppa | lpr -l
(if your printer filter recognizes the '-l' (direct output) parameter). In the test pattern, the grid is marked off in pixel coordinate numbers. Unfortunately, these coordinates are probably cut off before the edge of the paper. You'll have to use a ruler to estimate the pixel coordinate of the left and top edges of the actual sheet of paper (should be within +/- 300, may be negative; there are 600 pixels per inch). Add these coordinates to the X and Y offsets by either editing the configuration file or using the

-x and

-y command-line parameters. When

pbmtoppa is properly calibrated, the center mark should be in the center of the paper. Also, the margins should be able to be as small as 1/4 inch without causing the printer to choke with 'blinking lights syndrome'.

8. REDHAT LINUX INSTALLATION

RedHat users may find the following tip from Panayotis Vryonis <> helpful. The same should work for the 820 and 1000, but it hasn't been tested. Also, use the pbmraw GSDriver if you have it; it's faster. Here is a tip to intergrate HP720C support in RedHat's printtool: Install pbm2ppa. Copy pbm2ppa to /usr/bin. Edit "printerdb" (in my system it is found in /usr/lib/rhs/rhs-printfilters ) and append the following lines: ----------------------Cut here-----------------------
StartEntry: DeskJet720C GSDriver: pbm Description: {HP DeskJet 720C} About: { \\ This driver supports the HP DeskJet 720C \\ inkjet printer. \\ It does does not support color printing. \\ IMPORTANT! Insert \\ "- | pbm2ppa -" \\ in the "Extra GS Otions" field.\\ }
Resolution: {600} {600} {}
EndEntry ---------------------------------------------------- Now you can add an HP720C printer just like any other, using printtool.

9. SEE ALSO

R pbmpage (1),

R pstopnm (1),

R pbm (5)

pnm2ppa is not part of Netpbm, but does the same things as

pbmtoppa except it also works with color and has lots more features. See <http://sourceforge.net/project/?group_id=1322>. The file INSTALL-MORE in the pbmtoppa directory of the Netpbm source code contains detailed instructions on setting up a system to use pbmtoppa to allow convenient printing on HP PPA printers. It was written by Michael Buehlmann. For information about the PPA protocol and the separately distributed pbm2ppa program from which

pbmtoppa was derived, see <http://www.httptech.com/ppa>.

10. AUTHOR

Tim Norman. Copyright (C) 1998. Licensed under GNU Public License Manual page by Bryan Henderson, May 2000.