Skip to Content.
Sympa Menu

baslinux - [BL] printing on HP ppa printers in linux (series 700 800 1000).

baslinux AT lists.ibiblio.org

Subject: Baslinux mailing list

List archive

Chronological Thread  
  • From: sindi keesan <keesan AT sdf.lonestar.org>
  • To: baslinux AT lists.ibiblio.org
  • Subject: [BL] printing on HP ppa printers in linux (series 700 800 1000).
  • Date: Fri, 12 Nov 2004 17:50:36 +0000 (UTC)

While trying to figure out how to compile the latest ghostscript to work with the HP 700-800-1000 series (which prints ppa format) I ran across pnm2ppa and pbm2ppa and the following (which I think comes in a binary for Redhat). Do I correctly understand that you can use it to print with cat or gs without having to set up a print filter, and that you can print pbm images this way, or pdf or ps if you use ghostscript?

This would make it possible to use this series of HP 'Windows' printers.
Someone has done something similar for Lexmark printers.

Apparently this and the other programs convert pbm (which gs can produce from pdf or ps) to ppa, which the printer then prints directly without needing a filter. You can configure for the different printers and other things. We have three of these beasts and they would be helpful for when people send me 200x200dpi pdf files that don't print well at 150 or 300 dpi. pnm2ppa prints color.

I am hoping to find a precompiled binary, but sourceforge has source code (about 200K) for the latest pnm2ppa and earlier versions (50-400K). The printers are from about the year 2000, so the Redhat equivalent of SW81 might have a binary for them.

NAME

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

SYNOPSIS

pbmtoppa

[pbm_file [ppa_file]]


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_file is 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_file is 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 pbm) device driver.

You can generate a test page for use with this program with 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 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.

[ TIONS ]
-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 a4. Default is 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.


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
key1 value1
key2 value2
[etc.]

Valid keys are version, xoffset, yoffset, topmargin, leftmargin,
rightmargin, bottommargin, papersize, or any non-null prefix of these
words. Valid values are the same as with the corresponding invocation
parameters.


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:

gs -sDEVICE=rawpbm -q -dNOPAUSE -r600 \
-sOutputFile=- myfile.ps \
| pbmtoppa | lpr


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'.


REDHAT LINUX INSTALLATION

RedHat users may find the following tip from Panayotis Vryonis
<[38]vrypan AT hol.gr> 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.


SEE ALSO

[39]pbmpage(1), [40]pstopnm(1), [41]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
<[42]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
<[43]http://www.httptech.com/ppa>.

References

6. http://linux.about.com/



  • [BL] printing on HP ppa printers in linux (series 700 800 1000)., sindi keesan, 11/12/2004

Archive powered by MHonArc 2.6.24.

Top of Page