pnm2ppa-1.13/ 0000777 0000764 0000764 00000000000 11313235737 010035 5 0000000 0000000 pnm2ppa-1.13/docs/ 0000777 0000764 0000764 00000000000 11313235642 010760 5 0000000 0000000 pnm2ppa-1.13/docs/en/ 0000777 0000764 0000764 00000000000 11313235641 011361 5 0000000 0000000 pnm2ppa-1.13/docs/en/pnm2ppa.1 0000644 0000764 0000764 00000015122 07505255006 012742 0000000 0000000 .TH pnm2ppa "23 Jun 2002"
.SH NAME
pnm2ppa - convert portable anymap (PNM) images to HP's PPA printer format.
.SH SYNOPSIS
pnm2ppa [options] [ -i \fIinfile\fR ] [ -o \fIoutfile\fR ]
.SH DESCRIPTION
Reads portable anymap (PNM) format as input. Binary PNM formats pnmraw =
{ppmraw (color pixmap), pgmraw (graymap), and pbmraw (black-and-white bitmap)}
are strongly preferred. Output stream can be locally processed by
Hewlett-Packard's
Printing Performance Architecture (PPA) printers (HP DeskJet 710C, 712C, 720C,
722C, 820C, and 1000C series).
.PP
(PNM format output can be produced from PostScript(tm) input by the
GhostScript output devices "pbmraw", "pgmraw" or "ppmraw", or by "pnmraw",
which will choose one of these formats as appropriate for the document.)
\fBpnm2ppa\fP assumes the input resolution is 600dpi (or 300dpi if
the command-line option \fB--dpi300\fP is used): input at higher/lower
resolutions will result in a correspondingly larger/smaller printed image,
provided it is within the printer's allowed size range.
.PP
.SH OPTIONS
.\"{{{ -b bottommargin
.IP "\fB\-b \fIbottommargin\fR\fP"
Sets the bottom margin \fIbottommargin\fR in units of 1/600 inches (e.g., \fB -b 150\fP corresponds to 0.25").
.\"}}}
.\"{{{ -B blackness
.IP "\fB\-B \fIblackness\fR\fP"
Sets the black ink density \fIblackness\fR in drops per pixel (0,1,2,3,4).
.\"}}}
.\"{{{ --bi
.IP "\fB\--bi\fP"
Force bidirectional print sweeps.
.\"}}}
.\"{{{ --bw
.IP "\fB\--bw\fP"
Disables the color cartridge; will print in grey scale using only the black cartridge.
.\"}}}
.\"{{{ -d
.IP "\fB\-d\fP"
Displays the current configuration.
.\"}}}
.\"{{{ --dpi300
.IP "\fB\--dpi300\fP"
Treat input resolution as 300dpi instead of 600dpi.
.\"}}}
.\"{{{ --eco
.IP "\fB\--eco\fP"
Econofast mode: lower print quality that is faster and saves ink.
.\"}}}
.\"{{{ -f configFile
.IP "\fB\-f \fIconfigFile\fR\fP"
Re-reads configuration from \fIconfigFile\fR (after
initially reading it from /etc/pnm2ppa.conf).
.\"}}}
.\"{{{ -F GammaFile
.IP "\fB\-F \fIGammaFile\fR\fP"
Overrides reading the color-correction table (Gamma curve) from the default
file /etc/pnm2ppa.gamma, and uses \fIGammaFile\fR instead.
.\"}}}
.\"{{{ --fd
.IP "\fB\--fd\fP"
Enable fast ordered dithering instead of using the slower, but beautiful, Floyd-Steinberg dithering. (Has no effect in --bw mode.)
.\"}}}
.\"{{{ -g
.IP "\fB\-g\fP"
Prints a page of color intensity samples (for comparison with gamma.ppm
data produced by calibrate_ppa).
This is part of a \fBcolor-correction\fP procedure; see COLOR.txt for more details.
.\"}}}
.\"{{{ -h, --help
.IP "\fB\-h, --help\fP"
Displays program usage.
.\"}}}
.\"{{{ -i infile
.IP "\fB\-i \fIinfile\fR\fP"
Input file \fIinfile\fR is either a path to a PPM file, or '-' to indicate stdin (defaults to stdin).
.\"}}}
.\"{{{ -l leftmargin
.IP "\fB\-l \fIleftmargin\fR\fP"
Sets the left margin \fIleftmargin\fR in units of 1/600 inches (e.g., \fB-l 150\fP corresponds to 0.25").
.\"}}}
.\"{{{ --noGamma
.IP "\fB\--noGamma\fP"
Switches off any color-correction.
.\"}}}
.\"{{{ -o outfile | -
.IP "\fB\-o \fIoutfile\fR | - \fP"
Output file \fIoutfile\fR is either a path to a file or device, or '-' to indicate stdout (defaults to stdout).
.\"}}}
.\"{{{ -p
.IP "\fB\-p\fP"
Disables the black ink cartridge; i.e., print using only the color ink cartridge, even for printing "black". This might be useful for printing high-quality
color images.
.\"}}}
.\"{{{ -r rightmargin
.IP "\fB\-r \fIrightmargin\fR\fP"
Sets the right margin \fIrightmargin\fR in units of 1/600 inches (e.g., \fB-r 150\fP corresponds to 0.25").
.\"}}}
.\"{{{ -s papersize
.IP "\fB\-s \fIpapersize\fR\fP"
Sets the default paper size (now used only for color-correction output
produced by the \fB-g\fP option).
In normal use, pnm2ppa now instead reads the paper dimensions from
pnm input file headers, and
checks that it is a valid papersize for the given printer model.
Possible values for \fIpapersize\fR are \fBa4\fP (A4),
\fBletter\fP or \fBus\fP (US Letter, 8.5"x11"), \fBlegal\fR (US Legal,
8.5"x14").
The default is US Letter.
.\"}}}
.\"{{{ -t topmargin
.IP "\fB\-t \fItopmargin\fR\fP"
Sets the top margin \fItopmargin\fR in units of 1/600 inches (ie \fB-t 150\fP corresponds to 0.25").
.\"}}}
.\"{{{ --uni
.IP "\fB\--uni\fP"
Force unidirectional (left to right) print sweeps. Useful if
"shearing" is a problem for high quality color images.
.\"}}}
.\"{{{ -v printertype
.IP "\fB\-v \fIprintertype\fP"
Selects the printer model. Possible values of \fIprintertype\fR are:
\fB710\fP, \fB712\fP, \fB720\fP, \fB722\fP, \fB820\fP and \fB1000\fP.
The default is the HP DeskJet 7X0 Series (710, 712, 720, 722).
.\"}}}
.\"{{{ --verbose
.IP "\fB\--verbose\fP"
Displays the program's System Log messages on the standard output, as well.
.\"}}}
.\"{{{ --version
.IP "\fB\--version\fP"
Displays the program's version information.
.\"}}}
.\"{{{ -x xoffset
.IP "\fB\-x \fIxoffset\fR\fP"
Sets the x-offset \fIxoffset\fR from the left of the page. Units are 1/600 inches.
.\"}}}
.\"{{{ -y yoffset
.IP "\fB\-y \fIyoffset\fR\fP"
Sets the y-offset \fIyoffset\fR from the top of the page. Units are 1/600 inches.
.\"}}}
.SH NOTES
The default configuration file \fI/etc/pnm2ppa.conf\fR is read in first. Command line arguments then modify the resulting definitions.
.PP
The \fB-v\fP option resets all definitions (margins, offsets, etc.) back to
the inbuilt defaults for that printer and should be used before subsequent
\fB-b\fP, \fB-l\fP, \fB-r\fP, \fB-t\fP, \fB-x\fP and \fB-y\fP arguments.
.SH "SEE ALSO"
pnm(5), ppm(5), pbm(5)
.SH FILES
.\"{{{ /etc/pnm2ppa.conf
.IP "\fB\fI/etc/pnm2ppa.conf\fR\fP"
Default configuration file.
.\"}}}
.\"{{{ /etc/pnm2ppa.gamma
.IP "\fB\fI/etc/pnm2ppa.gamma\fR\fP"
Default Gamma (color-correction) file.
.\"}}}
.SH AUTHOR
This code is licensed under the GNU Public License version 2. See
LICENSE for details.
.PP
(c) 1998-1999 Tim Norman
.PP
(c) 1999 Giorgio Marzano
.PP
(c) 1999 Andrew van der Stock
.PP
(c) 1998-2002 Various authors for many, many fixes
.SH HISTORY
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 started making real headway in getting
color support working properly. Andrew van der Stock has maintained
the code since September 1999, and made it available at
http://sourceforge.net/projects/pnm2ppa.
.SH BUGS
Faint horizontal lines marking boundaries between print sweeps may be visible.
You may get better results when printing images, with the options:
\fB -p --uni \fP (this may no longer apply since recent code improvements).
pnm2ppa-1.13/docs/en/sgml/ 0000777 0000764 0000764 00000000000 11313235642 012324 5 0000000 0000000 pnm2ppa-1.13/docs/en/sgml/CALIBRATION.sgml 0000644 0000764 0000764 00000021276 07176674550 014704 0000000 0000000
PPA Printer calibration for pnm2ppa
The pnm2ppa project team
v0.4, October 28, 2000
Information and instructions
for printer calibration using pnm2ppa.
(Updated for pnm2ppa-1.02 and later.)
Overview of Printer Calibration.
There are three main tasks you may need to carry out to fine-tune
your PPA printer:
Adjust the x-offset and y-offset to correctly center
the printed page on the paperAdjust the relative offsets between black and colored ink
printing - this should be done each time you replace an ink
cartridge.
Match the colors of printed images to some other output device
- this is color correction and is
described in
(or COLOR.txt).
These instructions assume that you are already able to print postscript
files with your PPA printer. If your print filters
are properly configured, something like "lpr test.ps"
will successfully invoke ghostscript and pnm2ppa
to print the postscript file test.ps. Alternatively, you may be using
shell scripts like "lprbw", "lprcolor"
and "lpreco" supplied with the
pnm2ppa source code, and modified by you for your defaults; you may also
have defined special printing devices in /etc/printcap, e.g.
a "coloreco" device so you print
with lpr -P coloreco test.ps. These details vary with
the operating system and distribution you use.
(1) Centering the printed page on the paper.
This is done by adjusting the x-offset and y-offset parameters
xoffset and yoffset
in the pnm2ppa configuration file (usually
/etc/pnm2ppa.conf). The parameters are given in units of
1/600 inch; increasing xoffset moves the image
to the right, and increasing yoffset moves it downwards.
These offsets now have default values defined for each printer model,
and you will probably not need to adjust them.
Uncomment and make small adjustments to the default
values for these in the configuration file, until the printout is satisfactory.
(You can also use the '-x' and '-y'
command-line parameters.)
There are two ways to check the offsets.
either using the "calibrate_ppa" program.or printing a suitable test page.
The "calibrate_ppa" program is a
stand-alone program distributed with pnm2ppa which
creates various test patterns in the raw
pixmap format accepted by pnm2ppa. (The three paper sizes,
US Letter, US Legal, and A4, are supported).
If your paper size is A4, and your printer filter accepts
the "-l" (direct output) option to lpr,
the command to run is:
calibrate_ppa -s a4 --center | pnm2ppa --bw -i - -o - | lpr -l
(Substitute "letter" or "legal" for "a4" to change
the papersize; if no paper size is specified, it is assumed to
be letter.)
If "lpr -l" is not valid, you need to know which port your
printer is attached to. Assuming it is /dev/lp0, the above
command becomes
calibrate_ppa -s a4 --center | pnm2ppa --bw -i - -o /dev/lp0.
The pattern shows distances from the edge of the printed page
in units of 50 dots (1/12 inch), and diagonal lines that should
point to the corners. Change xoffset and yoffset
in the configuration file (usually /etc/pnm2ppa.conf
to center the pattern. The configuration file is
supplied with commented-out entries like
#xoffset 160 showing the default value. Remove
the "#" to activate the entry.
In Red Hat or Mandrake Linux distributions, a suitable test page is
/usr/lib/rhs/rhs-printfilters/testpage.ps
(US Letter paper) or
/usr/lib/rhs/rhs-printfilters/testpage-a4.ps
(A4 paper). (If these are not available, similar test pages
are supplied in the pnm2ppa source distribution.)
These pages have margins drawn at standard distances from the
edges of the paper, and can also be used to check the centering,
but are not as accurate
(2) Calibrating the X and Y Color Head Offsets.
The color ink offsets now have to be calibrated with respect to the black ink.
Because the relative position of the two ink cartridges
can move slightly,
this must be done whenever an ink cartridge is removed and replaced.
To print an alignment calibration pattern on a4 paper, run
calibrate_ppa -s a4 --align | pnm2ppa --fd -i - -o - | lpr -l
On the printed page, there are four alignment patterns,
corresponding to configuration file
parameters ColOffsX, ColOffsY, colorshear
and blackshear. The central alignment patterns,
labelled "0" should be perfectly aligned. If they are
not, first
correct the shearing patterns, (see below).
Then identify the best-aligned ColOffsX
and ColOffsY patterns, and add or subtract the
positive or negative number below the pattern from the value in
the configuration file.
Check the result by printing the alignment test pattern:
calibrate_ppa --test | pnm2ppa -fd -i - -o - | lpr -l
The lines in the cross and square should be perfectly straight now.
The calibration can also be done by printing the test page
test.ps (found in the tarball
pnm2ppa-1.0.tar.gz; or installed
with the pnm2ppa documentation. (This is often in
/usr/doc/pnm2ppa*/.)
On the printout you see several images:
top left, you see a square with both black and colored items.
These should align correctly, or you have to change your settings.
You see a large vertical bar, and also a horizontal bar.
On the sides of the vertical bar there are a blue and a green line.
These should align with the 0 mark.
You also see a small vertical, and horizontal, bar, with a
red bar on its side.
If these items do NOT line up, you should take the following steps:
(1) take for the large bar the number of the tickmark just smaller
than the place where the green and blue lines point to. The minor
tick marks are 25 points.
(2) To this number, add the number of the tick mark at which a red tick
mark exactly lines up. This might not work if the offsets are way off;
in that case, apply the correction of step 1, and print again.
(3) Add the horizontal offset to the value
of ColOffsX, and the vertical offset to
the value of ColOffsY in the configuration file.
Now you can print test.ps again to see whether this procedure worked.
Shearing adjustments
If bidirectional printing causes "shearing" of vertical lines
(horizontal offsets of those parts of the line printed
by left-to-right print-head sweeps relative to those printed on
right-to-left sweeps) you can make small adjustments (in 1/600 inch)
units using the blackshear and colorshear
parameters in the configuration file. You can also suppress
bidirectional printing with a unimode 1
configuration file entry.
The third and fourth lines on the color head offset calibration page
(see above) correspond to color and black print head shearing corrections.
If the central alignment patterns (labeled "0")
are not aligned, add or subtract the positive or negative number
below the best-aligned pattern from the colorshear
and blackshear values in the configuration file.
Cleaning the Print Heads
You can use calibrate_ppa to clean the print heads by
printing patterns that exercise all the ink nozzles:
calibrate_ppa --clean | pnm2ppa -p -i - -o - | lpr -l
calibrate_ppa --clean | pnm2ppa --bw -i - -o - | lpr -l
The first of these commands prints a cleaning pattern
with colored ink, the second uses black ink.
Other adjustments
The parameter blackness adjusts the number of black ink
drops printed per pixel. It takes values 1, 2, 3, or 4 (2 is the
default). Other values, like 0, suppress black ink.
Inks can also be suppressed by configuration file
entries
black_ink 0,
color_ink 0,
cyan_ink 0,
magenta_ink 0,
or yellow_ink 0.
These are mainly useful for debugging
the printer driver.
pnm2ppa-1.13/docs/en/sgml/COLOR.sgml 0000644 0000764 0000764 00000016565 07176621443 014031 0000000 0000000
Color correction for pnm2ppa
The pnm2ppa project team
v0.6, October 28, 2000
Information and instructions
for color correction of pnm2ppa
color printing.
(Updated for pnm2ppa-1.0 and later.)
Overview of Color correction.
Color Pixmap input to pnm2ppa (ppm format, produced
by the ghostscript output devices ppmraw or ppm)
specifies the color of a pixel as three coordinates (Red, Green, Blue) in the
range 0-255. The program pnm2ppa converts these to relative amounts
of Cyan, Magenta and Yellow ink drops printed on the page.
Color correction allows the user to attempt to match the printed
colors to some reference colors, such as those displayed on the
terminal, or those printed on a different printer, or those printed
on the same printer with a different
driver (such as the Win9x drivers supplied by HP with their PPA printers).
The color output from pnm2ppa can be controlled in two ways:
by a color correction "gamma" file, if it is installed.
By default this file is
/etc/pnm2ppa.gamma,
but it may also be specified with the pnm2ppa option
pnm2ppa ... -F gammafile ... .
if there is no gamma file, by three values
specified by keywords ( either
GammaR,
GammaG,
GammaB
or
RedGammaIdx,
BlueGammaIdx,
GreenGammaIdx) in the
pnm2ppa configuration file.
pnm2ppa will carry out "color correction",
unless it is called with the --noGamma command line option.
However, unless you set up a color correction scheme, the default
color correction does not change any colors.
Color correction is specified by three color intensity
functions (curves), one for each of
Red, Green, and Blue. In their simplest form, these curves
have a standard form controlled
by a single "gamma" parameter such as
GammaR. The more sophisticated correction, in the
file pnm2ppa.gamma, specifies these curves more generally
as a table of numbers that translate each possible
color intensity value to a new value.
Note that, in principle, different color corrections are needed
for different print quality settings, and for different
brands and qualities of paper!
At present the methods for constructing a color correction for
pnm2ppa are not very user-friendly. If you can improve
them, please help!.
Color correction with "gamma" values in the configuration file.
The PixMap (ppa) format specifies colors by an intensity for
each primary color, Red, Green and Blue, in the range 0-255, so
(0,0,0) is black, and (255,255,255) is white.
The standard color intensity enhancement function replaces the ppm
intensity i of each primary color by
Enh(i) which is the closest integer
to ( i / 256) raised to the power
Gamma, times 256.
You can specify the Gamma values in the configuration file
as decimal numbers GammaR, GammaG, GammaB,
but how do you find out what values to choose?. Perhaps by experimenting
with changing the Gamma values.
A source of information on Gamma color correction is
One method for constructing a Gamma correction
has been built into pnm2ppa, but it
wastes quite a lot of ink, and many users
find it less effective than producing a customized
color correction curve as described in the next section.
You must first use pnm2ppa to print a color test page, and then
generate a file gamma.ppm to compare to it.
To do this, type
pnm2ppa -g -i - -o /dev/lp0
(replace /dev/lp0 by whatever printer device your PPA printer uses,
or use ... -o - | lpr -l , etc.). Note also that
as pnm2ppa is not receiving any ghostscript input to tell it
the paper size, this must be correctly specified by a configuration
file entry or, e.g., a -s a4 option, if the default US Letter
paper is not being used. This procedure will print a color calibration
page.
The printed output is an array of sets of three colored bands,
red, blue and green, each of which increases in brightness from
left to right. The topmost set of bands should be referrred to as
bands "0", the next ones as "1", etc.
Next, run the extra program calibrate_ppa which will produce
a (large, 10MB) PixMap (ppm) file:
calibrate_ppa -g -o gamma.ppm
This will produce the PixMap file as
gamma.ppm in the current directory.
To color-correct the printer so that its colors match those on the
terminal screen,
you should now attempt to view the file gamma.ppm
using some application
(such as the GNU image manipulation program gimp, or xv)
that can view .ppm files. For each color, identify the
printed band (0, 1, 2, ... etc)
that most closely corresponds to the brightness profile
shown on the screen. The default values are now:
RedGammaIdx 0
GreenGammaIdx 0
BlueGammaIdx 0
(i.e., no color correction).
Enter your modified values for these in the pnm2ppa
configuration file (usually /etc/pnm2ppa.conf).
The actual Gamma value is then 1.0 - 0.033*(Color)GammaIdx ;
To color-correct with respect to another printer (or the Win9x drivers),
you must manage to print gamma.ppm on that other device, then
make the comparison. (Or print the output of pnm2ppa -g
on that device; the top line is the same uncorrected color data as
gamma.ppm.)
Color correction using a "gamma file".
A "gamma correction file" is a binary file containing
3 x 256 numbers,
which are lookup tables of corrected red green and blue
color intensities.
The program pnm2ppa will use a default correction file
/etc/pnm2ppa.gamma if it exists, unless the
--noGamma option is used. The default correction file
location can be changed by using the pnm2ppa
option -F gammafile , where "gammafile" is the name
(including the full path) of the gamma correction file to be used.
Currently, there are two available tools for constructing a gamma
correction file:
A graphical utility ppagammacorrect is available in the
PPA Color Correction Utilities section of
the pnm2ppa web page
,
(but at the time of writing,
this appears to be frozen in early stages of development, with
little documentation, and may not be fully functional).
A working procedure is given in
,
which is made available by Klamer Schutte.
This is the method recommended by many users.
pnm2ppa-1.13/docs/en/sgml/INSTALL.MANDRAKE.sgml 0000644 0000764 0000764 00000005730 07501053375 015425 0000000 0000000
PPA Printer-Support RPM Packages for MANDRAKE Linux distributions.
The pnm2ppa project team
v0.2 June 11, 2002
Information about using pnm2ppa
with Mandrake.
(Updated for pnm2ppa-1.04 and later.)
Mandrake-specific issues.
See the document
for installation and setup. That document is written
for Red Hat; note the Mandrake-specific differences
listed below,
To update pnm2ppa
in any recent Mandrake release (7.2 or later) from v1.04 to v1.10,
the simplest procedure may be
just to compile pnm2ppa from tarball source and replace the Mandake binaries
/usr/bin/pnm2ppa and /usr/bin/calibrate_ppa with
the new versions. They should function as drop-in replacements,
with the same user interface, but improved image quality.
(You may also wish to use the newer pnm2ppa.conf configuration
file template). Mandrake 7.0 and earlier has incompatible and non-functional
pnm2ppa support which must be replaced.
Please use
printtool to delete any installed PPA printers BEFORE
upgrading rhs-printfilters. (If you forget to do this, and
printtool will not start after the update, delete or move your
/etc/printcap file.)
Install the pnm2ppa RPM package.
Then update rhs-printfilters with
rhs-printfilters-1.58-4ppa5mdk.i386.rpm
from
.
(Do NOT use rhs-printfilters-1.57-4ppa4.i386.rpm
which is for RedHat systems only.)
Mandrake-7.1 supplies a pnm2ppa RPM and has support for
it in rhs-printfilters. Mandrake 7.1 has a configuration
tool DrakConf for setting up printers, which may
be an interface to printtool.
Some users have reported difficulties with this. In that case, just use
printtool to configure the printer.
Mandrake-7.2 does not have a separate pnm2ppa RPM package, but has
added pnm2ppa to the ghostscript RPM package. This creates
difficulties for updating pnm2ppa with the RPM package from
.
You will get reported conflicts with ghostscript
if you try to install the
pnm2ppa-1.04-1.i386.rpm package,
but it seems that you can
safely use the rpm option --force to force its installation.
Mandrake-7.2 also has moved to using CUPS as its printing system,
and appears to now have its own printer configuration tool, but still
includes pnm2ppa support in rhs-printfilters.
pnm2ppa-1.13/docs/en/sgml/INSTALL.REDHAT.sgml 0000644 0000764 0000764 00000075476 07512500653 015226 0000000 0000000
PPA Printer-Support RPM Packages for Red Hat Linux and Compatible Distributions
The pnm2ppa project team
v0.30, July 9, 2002
Information and installation instructions
to accompany pnm2ppa packages
for Red Hat Linux available at
(Updated for pnm2ppa-1.10 and Red Hat 6.2 or later.)
See the "Troubleshooting" section at the end of
this document for
fixes to some reported problems
Overview of HP's PPA DeskJet Printers.
Most of Hewlett-Packard's DeskJet(tm) printers use the PCL3 command language,
and are currently supported by Ghostscript drivers. However, a few legacy
models,
namely
DeskJet 710C Series: HP DeskJet 710C, 712C
(discontinued)DeskJet 720C Series: HP DeskJet 720C, 722C
(discontinued)DeskJet 820C Series: HP DeskJet 820Cxi, 820Cse
(discontinued)DeskJet 1000C Series: HP DeskJet 1000Cxi, 1000Cse
(discontinued)
feature "Host-based" printing,
and use HP's proprietary
PPA (Printer Performance Architecture) protocol,
instead of PCL. The two models in each series are physically
identical;
they just came with different bundled Windows software.
All PPA printers are now discontinued from HP's product lines,
but may still be found as second-hand legacy items.
PPA printers rely on software running on the
host CPU to carry out the low-level processing
of printer output that would be done by hardware in
a standard PCL printer. The relation of PPA printers to PCL printers
is analogous to the relation between "Winmodems" and true modems.
Presumably, the idea at the time was that this would allow cheaper hardware
to be used, but the decline in hardware prices probably meant that
the savings were not significant, and PPA printing seems to have been
abandoned.
Unfortunately, HP only supplied Windows software drivers for PPA printers,
and have indicated that it is unlikely that
they will ever make the proprietary PPA specs public.
This is apparently because of concerns that
publication of the specs might reveal crucial details
of HP's trade secrets about "color science" to competitors.
(A secondary issue
is that it is apparently possible to physically
damage the printer by sending it
bad sequences of PPA commands, which is not the case for PCL commands,
and it seems that HP do not wish to take any responsibility for such damage by
encouraging unofficial PPA programming.)
In the past, Linux users often inadvertently purchased PPA DeskJet models,
mistaking them for PCL3 DeskJets, which have traditionally
been well-supported
by Linux drivers.
Fortunately, a reverse engineering effort,
started in 1998 by Tim Norman,
and continued by the pnm2ppa project at
,
and
has managed to produce drivers that provide basic printing
functionality for these PPA printers under Linux and other
Unices. While HP have recently begun to release their own Linux
drivers for PCL3 DeskJets, they have not included drivers for their legacy
PPA printers in this effort.
The pnm2ppa driver has been stable since v1.04, released
October 2000, with no known reproducible bugs, except that image printing
quality was not so good. This version has been distributed with
Red Hat, and other Linux distributions. v1.10, released July 2002,
contains a lot of changes that improve image quality, in particular
by improved bidirectional printing, and
always printing black on top of color.
A better improvement would be for someone to make a PPA backend to
, using
pnm2ppa as a guide for how to send data to PPA printers.
But, since PPA printers are now "legacy" hardware, and
pnm2ppa appears to
work fine for most printing tasks, it is unlikely that any new developers will
be interested in doing this, and there is currently no further development
anticipated. The project is currently in "low-maintenance mode".
The pnm2ppa driver for color printing with PPA printers.
Color printing with PPA printers is supported by the
pnm2ppa driver which is the successor to the older
black-and-white-only driver
developed by Tim Norman.
pnm2ppa
translates portable anymap (pnm)
format images into a stream of PPA instructions which can be sent to the
printer. In the driver name,
"pnm" stands for the superset
of three image formats:
ppm (portable "pixmap" format for color images),
pgm (portable "greymap" format for greyscale images),
and pbm (portable "bitmap" format for black and white images).
Ghostscript has a number of "output devices" that
produce pnm format output from postscript or pdf input.
These come in plain (text) and raw
(binary) variants. While pnm2ppa can now interpret
both plain and raw pnm formats, there is no point in using the
inefficient plain formats: always use the "raw"
output devices, which are:
ppmraw - raw pixmap format (color images);
pgmraw - raw greymap format (greyscale images);
pbmraw - raw bitmap format (black and white images);
pnmraw - selects between ppm, pgm, and pbm raw formats;
pgnmraw - selects between pgm and pbm raw formats.
The last two output devices are switches that try to analyze the
image, and select an appropriate format; however, they are not
recommended for routine use, as they may inconsistently choose the format.
The ghostscript
packages supplied with all recent Red Hat distributions provides all these
devices. To see the list of available
ghostscript output devices, type the command line
gs --help
if the required ppmraw or
pbmraw devices are not shown, you will have to upgrade your
version of ghostscript.
The data must be streamed directly from ghostscript to
pnm2ppa to the (local) printer without being
stored in any intermediate
file: one ppm-format (color) US Letter size page is represented
by 3x5100x6600 Bytes (100MB) in binary format and four times this amount in
text format.
An example of
a command line for printing a postscript
file file.ps using gs (ghostscript) and pnm2ppa is
cat file.ps | gs -q -sDEVICE=ppmraw -r600 -sPAPERSIZE=letter -dNOPAUSE \
-sOutputFile=- - | pnm2ppa --eco -v 720 -i - -o - | lpr -l
(all on a single line). In this example the paper size is explicitly
given to gs as US Letter
(8.5"x11") size
(letter); pnm2ppa no longer needs to be told what
the paper size is, and will read it from the gs output (and check
that it is a permitted size for the printer type).
The pnm2ppa option --eco specifies "EconoFast"
mode, for a lower quality output which uses less ink, and prints faster,
and -v 720 specifies the PPA printer as belonging
to the DeskJet 720C series.
pnm2ppa expects that the input resolution is 600dpi
(or 300dpi if it is called with the pnm2ppa --dpi300 ...option).
This corresponds to the gs -r600 ... or
gs -r300 ... ghostscript options.
If other higher/lower input resolutions are used, the size of
the printed image will be larger/smaller, provided it is
within the printer's allowed size range.
Obviously, it would be impractical to type such a command each time
one wished to print something, and since RedHat 6.2, printfilter
support for pnm2ppa is built into Red Hat's printer
configuration scheme, so after configuration,
the simple command
lpr file.ps
should successfully print a postscript file.
However, in case you wish to check if something
is misconfigured in the print filters, you can use a script like the
above one to bypass them and check that the printer is working.
Also, if you wish to print to paper sizes supported by ghostscript,
but not supported by the Red Hat Printer configuration utilities, you can
use scripts like the one above.
The HP 710C, 720C, and 820C series support paper sizes from
3"x3" to 8.5"x14", while the 1000C
supports 4"x6" to 13"x19".
Available RPM packages.
A RPM package for pnm2ppa is part of the Red Hat Linux
distribution starting with Red Hat 6.2.
You will also find a RPM package for the latest release of
pnm2ppa
at
.
The latest version at the time
of writing is
pnm2ppa-1.10-1rh7x.i386.rpm, and is built on
Red Hat 7.3, or
pnm2ppa-1.10-1rh62.i386.rpm, built on
Red Hat 6.2.
If you are running a different release
of Red Hat (or a different Linux distribution)
you may need to download and rebuild the source RPM
pnm2ppa-1.10-1.src.rpm instead:
rpm --rebuild pnm2ppa-1.10-1.src.rpm
(You must be root to do this, and have the necessary
compilers installed; on Red Hat, the rebuilt binary RPM will be created in
the directory /usr/src/redhat/RPMS/i386/.)
Red Hat 6.2 and later also includes support for configuring your
printer to use pnm2ppa.
(Information necessary for configuring
pnm2ppa on older Red Hat releases has been removed from
this document; for this, see the documentation that came with
pnm2ppa-1.04, or update your RedHat distribution.)
Note: If you are still using Red Hat 6.2, you may wish to update the
print filter support for pnm2ppa that comes with it.
The pnm2ppa-1.10-1rh62*
RPM package supplies the necessary files that you can use.
After installing this RPM, see
/usr/lib/rhs/rhs-printfilters/README.ppa for details.
Installing the pnm2ppa RPM package and setting up the PPA printer.
To install the RPM package, you must log in as the system administrator,
root.
Now begin the installation. First install the pnm2ppa RPM:
rpm -Uvh pnm2ppa-1.10-1*.i386.rpm
The pnm2ppa executable gets installed in /usr/bin/.
The Linux kernel will be able to autodetect
IEEE-1284 devices like PPA printers, provided they are attached
to the parallel port with a bidirectional IEEE-1284 cable. (If your
printer works under Windows, you have the correct cable.)
A script detect_ppa is provided by the pnm2ppa
RPM: just type
detect_ppa
to confirm that your Printer is found.
A typical message from the printer, which will
be displayed if autodetection is successful, is:
CLASS:PRINTER;
MODEL:DESKJET 820C;
MANUFACTURER:HEWLETT-PACKARD;
DESCRIPTION:Hewlett-Packard DeskJet 820C;
COMMAND SET:SCP,VLINK;
A list of PPA printers found, and the parallel ports to which they are
attached, will also be shown.
At this point it is useful to test that your printer is working, by
printing a test page using the supplied script test_ppa
which the RPM has installed. You will need to know your
printer model (710, 712, 720, 722, 820, 1000), your paper size
(letter, legal, a4) and the printer port the printer is attached to.
If it is attached to the primary parallel port, this is
(usually) /dev/lp0.
Type
test_ppa
and give the details about printer model. papersize, and port number
when prompted.
You will then be asked
whether to print a test page, an offset calibration
page, or an alignment calibration page, etc.
Tip:
The test_ppa script
does not use the Red Hat print filters, so it is
useful when troubleshooting, for testing if any printing problems are
associated with the basic printer installation, or with the
configuration of the print filters. Configuring the print filters.
Note: Red Hat 7.3 now features either CUPS or LPRng printer management.
The configuration tools should be able to configure pnm2ppa,
using the information about it taken from the Linux Printer Database.
Apart from the addition of a new --dpi300 option
to accept 300dpi input (useful for printing PNM output from 300dpi scanners),
there have been no changes in the pnm2ppa command line since the pnm2ppa-1.0
release, so the configuration scripts are stable. (They
can only use the default 600dpi input mode.)
Since Red Hat 7.1, there is a graphical
printer configuration utility printconf-gui. In Red Hat 6.2 and
7.0, the older configuration utility called printtool is used.
In either case,
start the "Red Hat Linux Print System Manager"
(as root) to
configure the printer, either
by clicking on the printer icon in Red Hat's "control-panel",
or just typing
printtool
which also starts printconf-gui in the newer Red Hat releases.
Configuring the print filters with the Red Hat 6.2/7.0 printtool
(Skip this section unless you are still using Red Hat 6.2 or 7.0)
The following description is for the older printtool that
is used by Red Hat 6.2/7.0. The printer configuration utility
printconf-gui for Red Hat 7.1 and later
is a little different, as it is based on the foomatic printer
configuration database which contains entries for pnm2ppa
(but not the older pbm2ppa). You should be able to easily figure out
what to do: it can configure all pnm2ppa command-line options in the
Driver Options screen.
In the Red Hat 6.2/7.0 Print System Manager window, click on Add, then
in the "Add a Printer Entry", select Local Printer, and
click Ok. Hopefully, the port on which the printer is attached
will be listed as "Detected" (if not,
fix the problem before continuing, perhaps by
adding the line "alias parport_lowlevel parport_pc"
to /etc/conf.modules).
You will now have to "edit
the local printer entry" for the PPA printer. Click on
Select to chose the "Input filter".
The Configure Filter screen will open.
Among the many printer entries in the list
"Printer Type", you should find three entries
HP DeskJet 1000 series (PPA) (for 1000Cse, 1000Cxi models)
HP DeskJet 710/720 series (PPA) (for 710C, 712C, 720C, 722C models)
HP DeskJet 820 series (PPA) (for 820Cse, 820Cxi models)
Select the appropriate
entry for your printer model. You will then be presented with
various options:
The Driver Description box contains information about the
driver (you may have to use the scrollbar at the right of the box
to read it all).
The resolution box shows a single
resolution (600x600). There are no other choices.
The Paper Size box allows
various choices (only letter, legal, and a4
seem correspond to native paper sizes printed by the Red Hat print filters;
the other choices, (a3, ledger, ...) appear to get resized by
the print filters to print on US Letter size paper (?) ).
(Other paper sizes cannot be selected this way, but you can
print to any papersize, if it supported by both ghostscript
and the printer, using a script, as described above, that bypasses
the RedHat printfilters.)
The Color Depth/ Uniprint Mode box allows various selections
of color and print quality (These are achieved by
using various combinations
of the pnm2ppa options
--eco (EconoFast mode), -p (disable black
ink cartridge) and --bw (black and white printing only),
without direct intervention by the user.) The choices (in the
most recent printerdb database) are:
Black and White, econofast mode (--bw --eco)
Black and White, normal quality (--bw)
Color, econofast mode (--eco --fd)
Color, normal quality (--eco)
Color, high quality
Color, normal quality, black ink disabled (-p --eco)
Color, high quality, black ink disabled (-p --uni)
(These are the choices that will be presented by "official"
rhs-printfilters-1.72; if you installed a pnm2ppa
RPM package from
, you may have a file
/usr/lib/rhs/rhs-printfilters/README.ppa explaining how to modify
earlier versions of rhs-printfilters to show these updated
choices.)
You may also see a choice to use the older "Legacy"
driver pbm2ppa (black and white only); this is
is stable but unmaintained; it may still be a useful
alternative to pnm2ppa on older, slower systems with
less available memory.
The three Printing options are not relevant here, and
should not be selected. They are for direct printing
of text (ascii) to non-postscript printers, but since the only way of printing
text files with pnm2ppa is
by first converting them to postscript(tm), this is not
possible on the PPA printer.
It is important that the choice
"Fast text printing (non-PS printers only)" is NOT selected,
so that the print filters will
convert text files to postscript before printing.The Margins
entries control the margins used when printing text files
(these are instructions to the text-to-postscript
conversion process).
The Extra GS options box is not only a place for adding
options for ghostscript, but also for the PPA drivers.
Leave this box empty unless you know what you are doing.
As explained in the text in the Driver Description box
(you did read it, didn't you ?), the entry should be in the format:
gs_options PPA ppa_options
Anything before the
"PPA" is interpreted as a gs option, anything after it
is interpreted as a ppa option. You can learn about
pnm2ppa options by typing either "man pnm2ppa"
or "pnm2ppa --help" at a command line (hopefully, these
two sources of information will be consistent with each other!);
When you have made your choices, click on Ok to
save your selections and close the "Configure Filter" screen,
and then click on OK to close the "Edit Local Printer Entry"
screen.
You are now back in the "Red Hat Print System Manager" screen;
highlight the printer you just configured, and, in the Tests
menu, choose Print Postscript test page to print a test page using
the Red Hat print filters. If this printed correctly, your
print system is set up to use the PPA printer, just like any of the other
printers that the Red Hat print filters support.
Configuring pnm2ppa.conf and calibrating the printer.
A number of printer parameters are set to reasonable default values
for each of the printer models, but you may wish to "fine tune"
or calibrate your printer. The default values can be overridden
by entries in the configuration files, which by default are
/etc/pnm2ppa.conf and /etc/pbm2ppa.conf.
At 600dpi, one pixel is 1/600 inch.
The user-adjustable parameters are:
verbose 1 and silent 1. These control
messages about progress and errors from pnm2ppa. By default,
messages are sent to the system log /var/log/messages.
The verbose 1 keyword send copies to stderr, the
standard error stream to the terminal. The silent 1
keyword silences the stream of messages to the system log.
The system log messages may be silenced in the default
configuration file; switch off "silent"
mode with "silent 0" for debugging printer
problems (or use verbose mode). The version keyword can be used to specify
the printer model as 710, 712, 720, 722, 820, or 1000.
It is not needed if you use the RedHat printool to
configure the printer.
xoffset and yoffset: the x-offset and y-offset
(in pixels) of the
printed image on the page, which should be chosen so the image
is correctly centered on the paper. (These can also be set with
the -x <xoff> and -y <yoff> options.)
See (or CALIBRATION.txt) for more information.
topmargin, bottommargin, leftmargin,
rightmargin: the four
margins, which define the distances (in pixels)
from the edges of the paper to the
printed region; parts of the image that are outside these margins
will not be printed.
(These can also be set with the
-t <top margin> ,
-b <bottom margin> ,
-l <left margin> , and
-r <right margin>
options.)
ColOffsX and ColOffsY: the x-offset and y-offset
(in pixels)
between the color image produced by the color ink printer head, and that
produced by the black ink printer head.
These should be recalibrated
each time an ink cartridge is replaced.
See (or CALIBRATION.txt) for more information.
blackshear and colorshear: these are x offsets
between right-to-left and left-to-right sweeps of the print head, one for
the black printing and one for the color printing. These provide sideways
offsets (in pixels) of the right-to-left sweeps,
that can be used to correct "shearing" when printing
in modes that use bidirectional print head sweeps.
unimode 1 will make unidirectional
print sweeps (left-to-right) the default, instead
of bidirectional sweeps. The --uni
and --bi options can control how a particular print
run is printed. Unidirectional printing is only useful
(it is slower) if there are issues of "shearing"
in high quality image printing.
blackness : this takes values 0,1,2,3 or 4 drops of
black ink per pixel, and controls black ink density in black-and-white
and "text-like" black regions in color printing. At present,
this has no effect on printing with the black ink cartridge disabled,
or on black regions identified as "image-like". (This can
also be set with the -B <n> option,
where n is the number of drops.)
GammaR, GammaG, and GammaB:
the are the three "gamma" parameters that define the
standard color correction
curves for red, green, and blue. Changing these will affect how
colors appear (decreasing any Gamma enhaces the corresponding color).
The Gamma values are specified as decimal numbers,
with Gamma = 1.0 corresponding to no color correction.
Gamma values can also be specified using integer numbers
RedGammaIdx, GreenGammaIdx, BlueGammaIdx;
These are determined by a procedure discussed in
or COLOR.txt,
which involves printing a test page. The papersize
keyword specifies the paper size used for this testpage,
because it is produced by pnm2ppa without the input that
usually specifies the page size.
The keywords
black_ink 0,
color_ink 0,
cyan_ink 0,
magenta_ink 0,
and yellow_ink 0
can be used to switch of the various inks; this can be useful
in troubleshooting and debugging pnm2ppa.
Use test_ppa to print various test pages
or calibration patterns to adjust the offsets.
If you wish to specify these
parameters using the command-line options
described above, in Red Hat 6.2/7.0 some of them can be
entered in the "extra GS options" box using the Print System Manager
(printtool), as described above.
In Red Hat 7.1 and later, all command-line options can be set using the new
printconf-gui utility.
Utility programs for the printer.
HP's Windows software provides a utility program
that sends PPA commands to tell the printer to perform
tasks like cleaning the printheads, etc.
On Red Hat Linux, You can use test_ppa
(which acts as a command-line front-end for
calibrate_ppa) to print head-cleaning patterns.
There is a graphical (gtk-based) tool
written by Javier Sedano
for creating
a pnm2ppa.conf file and acting as a front end to
calibrate_ppa.
This is called ppaSet, and a beta version of it can be found
in the same place as the pnm2ppa-1.10 distribution
at
There was also at one time a proposal to add support for PPA printers to the
PUP (Printer Utility Program) utility, which is
also a project at
.
However, as of the time of writing, no PUP support
for PPA printers is available.
Troubleshooting
The first thing to do is to look at the messages from pnm2ppa
in the system log to see what is happening, whether pnm2ppaactually received any input, and if it was valid.
(You may need to enable system log messages in
/etc/pnm2ppa.conf, see above.)
Maybe ghostscript failed to convert your postscript file into
PNM format: in that case the system log reports
"Fatal Error! Input image (pnm2ppa) is not a PNM image".
(note: when this occured, older versions of pnm2ppa reported
"Input image is not a supported PNM format" which
may have been confusing).
This is because the input received by pnm2ppa was not a valid
PNM image, but instead ghostscript failed to produce any
PNM output at all, and its only output was probably just an error message.
This is not a pnm2ppa problem!
Here are suggestions for dealing with other problems that you may encounter.
Printing fails in the middle of a print run, perhaps
when a figure embedded in the document is printing (in the latest
pnm2ppa versions, printing finishes normally, but an incomplete
document is printed). The system log
reports that read_line could not read the image, and found EOF
(end-of-file). This probably
means that ghostscript's "ppmraw" or
"pgmraw" output device started correctly, but
failed for some reason before finishing the image conversion
from postscript to PNM format, usually leaving a core dump.
(This has been seen to happen in ghostscript 5.10 ;
upgrading to ghostscript 5.50 solved the problem.) If you cannot
upgrade, try printing the document
in black-and-white using the ghostscript "pbmraw" output device.
You printed an image file using a "high quality"
printer setting, but it has visible horizontal lines
on it and printing under Windows(tm) 9x doesn't
show this effect (except in "economode").
These are probably "swath boundaries",
showing the junction between different sweeps of the print head.
Solution: using unidirectional printing (PPA option --uni,
or unimode 1 in /etc/pnm2ppa.conf) helps a little.
this problem is fixed in the pnm2ppa-1.10 release
"Flashing light syndrome ".
Your printer usually works, but you have found that some particular
documents cause the printer to fail, and the lights on its panel
start flashing rapidly in sequence. Solution, turn the printer off and back
on again. This is not supposed to happen any more; if it happens
reproducibly, contact the pnm2ppa developers, and offer to
make the offending
file available for testing and diagnosis of this problem.
(Don't sent it to the Mailing List unless requested).
Bug reports can be filed at
.
You wish to print on envelopes or other non-standard media
not supported by the print filters?
Solution: if you can get Ghostscript (gs) to
produce the correct image, and the paper size is in the range allowed
by your printer, you should be able to do this with a
script that bypasses the print filters, as described earlier
in this document.
Colors look wrong, or do not match what the Windows(tm) 9x driver
produces. Solution: check that
your color ink cartridge is
not running out of some ink color; if not,
(a) adjust the "gamma"
entries in /etc/pnm2ppa,conf, or (b)
install a customized color calibration file
/etc/pnm2ppa.gamma. See the file
(or COLOR.txt) for more information.
Contacting the pnm2ppa project.
Send comments or corrections (about this document or the RPMS) to:
There are three mailing lists,
pnm2ppa-announce@lists.sourceforge.net (announcements),
pnm2ppa-users@lists.sourceforge.net (users helping users)
and pnm2ppa-devel@lists.sourceforge.net (developers).
You can subscribe to them, or browse their
archives, at
.
(The older pnm2ppa mailing lists died with the ListBot service)
To contact the developers, subscribe to ppa.devel and post a message.
There are Public Forums for posting questions
and comments
at
(but whether you get any help from these, depends on
whether anyone is reading them (unlikely!)).
pnm2ppa-1.13/docs/en/sgml/PPA_networking.sgml 0000644 0000764 0000764 00000047127 07431763126 016037 0000000 0000000
Networking HP PPA DeskJet Printers using SAMBA.
The pnm2ppa project team
v0.12 Feb 10, 2002
This document discusses Networking HP 710C, 720C 820C or 1000C Series
(PPA Protocol) HP DeskJet printers with non-Windows Hosts or Clients,
using SAMBA. Topics include choosing between transmitting PPA or PostScript
across the network, Windows and Linux/Unix Hosts, Windows and Linux/Unix
Clients, and emulating a PostScript printer on Windows.
(Updated for pnm2ppa-1.04 and later.)
Networking HP DeskJet PPA printers with SAMBA
Overview of PPA printers.
The HP DeskJet 710/712C, 720/722C, 820Cse/820Cxi and 1000Cse/1000Cxi
printers are
"Winprinters" which are designed only for use with
MS Windows operating systems. HP supplies Windows-only software
that processes the input data into the proprietary and unpublished
PPA ("Printer Performance Architecture") protocol.
HP states that these printers are not supported as networked
printers, but they in fact function correctly as shared (SMB)
printers under MS Windows.
In this document, the Host is the computer to which
the PPA printer is physically connected, and the Clients are
other computers on the network that wish to print documents
on the PPA printer.
In the Windows printing system, separate copies of the HP PPA printer drivers
are installed on each Client, and are run on the Client to produce PPA output
that is sent over the network to be spooled
on the Host to which the printer is attached.
HP's drivers are only supplied for Windows systems. The
independently-produced
driver runs on Linux, some other Unix systems, and BeOS.
This document describes various tested strategies for
using pnm2ppa and the
suite of SMB tools to allow the PPA printer to be attached to
a non-Windows host on a (TCP-based) SMB network, or to allow
non-Windows Clients to receive printing services from a Host
on the network.
Choice of protocol for sending over the network.
There are two possible ways to send printer data from a Client to
the printer Host over the network.
as PPA data, created by a driver on the Client.
This is what
happens when using conventional printer sharing on Windows.
as PostScript data, created on the Client, which
is then translated into PPA instructions by
drivers running on the printer Host.
Since PPA data is rather large, the first method involves sending
larger amounts of data over the network, which may be why HP do
not officially support PPA DeskJets as networked printers. It also
requires that PPA drivers are installed on the Client.
The Host to which the printer is attached can thus provide two
classes
of printing services:
PPA printing services: the Host accepts PPA-format
printing jobs created on the Clients either with HP's native PPA drivers
(Windows Clients) or pnm2ppa (Unix/Linux/BeOS Clients);
PostScript printing services: the Host accepts PostScript-format
printing jobs created on any postscript-capable Client, and converts
them to PPA format using either HP's native PPA drivers
(Windows Host) or pnm2ppa (Unix/Linux/BeOS Host);
It is useful to set up the Host to offer both types of service,
sharing a common spooling system.
Configuring the Printer Host.
Configuring a Linux/Unix Host to share a PPA printer
using Samba.
It is assumed that pnm2ppa is installed and working
to provide local printing services on the Host, and that
lpr will invoke a full set of print filters, as
(e.g.) in Red Hat 6.2. The PPA printer is installed with
the printer name lp, and
samba is assumed to be installed. General Samba configuration
issues involving security levels, network password, etc, are outside the
scope of this document (see the SMB-HOWTO). You must log in as
root to configure Samba.
Here is a sample entry setting up two public printer shares
in the Host's /etc/smb.conf file.
The printer HP722C-PPA is for printing by a Client that sends
PPA output from pnm2ppa or the HP drivers across
the network, and HP722-PS is for Clients that produce PostScript
output:
[HP722C-PPA]
comment = HP 722C printer on Linux (PPA input)
path = /var/tmp
printer name = lp
writable = yes
public = yes
printable = yes
print command = lpr -l -r -h -P %p %s
[HP722C-PS]
comment = HP 722C printer on Linux (Postscript input)
path = /var/tmp
printer name = lp
writable = yes
public = yes
printable = yes
print command = lpr -r -h -P %p %s
The only differences besides the names are that the print command
for HP722-PPA uses the " -l "
"pass-through" option so print filters are not applied.
The path entry uses /var/tmp because this is (presumably)
a world-readable and -writable area for temporary files.
After editing /etc/smb.conf to include these entries,
save it, and test its syntax with Samba's testparm utility.
Then restart samba
(run "/etc/rc.d/init.d/smb restart" on Red Hat).
Configuring a Windows Host to share a PPA printer
with non-Windows Clients.
The Host is assumed to be a Window 98 system, and the PPA
printer is assumed to be a HP722C installed with the native HP
PPA drivers supplied on HP's installation CD. Some details may vary
on other Windows versions.
First set up a shared printer that can accept PPA input
from both networked Windows Clients, and from
networked non-Windows Clients
that use pnm2ppa.
IMPORTANT!:
A PPA printer attached to a Windows Host shared with a
Client running pnm2ppa has the following limitation:
Bi-Directional communication between the Windows Host and the printer
must be disabled.
If it is not done,
a General Protection Fault will usually occur on
the Windows Host when pnm2ppa sends
output to the
shared printer. (A "Hpfbkg06" error occurs,
and the printer becomes nonfunctional until
the Windows system is rebooted.)
Disabling bi-directional communication appears to be a minor inconvenience:
according to HP, the print quality is unaffected,
but the
"advanced features of the Status Monitor"
will no longer send reminders to align the print cartridges
after a new cartridge is installed, or
send error messages
associated with the ink cartridges
or the banner lever.
You may be able to avoid disabling bi-directional communication
by using an emulated Postscript
printer to serve non-Windows Clients without using pnm2ppa
(see below).
To turn off bi-directional communication between the Windows Host
and the printer, open the Settings/Printers folder,
then right-click on the printer icon, and open the Properties
dialog. Select the Details tab, and click on
Spool Settings, then choose the setting
"Disable bi-directional support for this printer".
If you have any difficulties, try rebooting Windows after the change,
or see HP's support document
about disabling bi-directional communication.
To set up the Host to share the printer, right-click on its
icon in the Settings/Printers folder, and select Sharing,
then assign it a Share Name like HP722C-PPA , and enter a Comment
Line like "HP 722C printer on Windows 98 (PPA input)".
You may now also wish to set up an emulated Postscript printer that
accepts Postscript input from the Client,
and prints it using HP's PPA drivers
running on the Host, instead of on the Client.
See the section
If you have installed and successfully tested the emulated printer,
set it up for sharing on the network.
Right-click on its
icon in the Settings/Printers folder, and select Sharing,
then assign it a Share Name like HP722C-PS, and enter a Comment
Line like "HP 722C printer on Windows 98 (PostScript input)".
The emulated printer will appear like a Postscript printer to
the Clients. If it provides acceptable printing services to
the non-Windows clients, you will not need to connect pnm2ppa
printers to HP722C-PPA, and will be able to re-enable bi-directional
communication between the HP drivers and the printer.
(However, the extra processing involved in the emulation may be
unacceptably slow, or turn out to use too much of the host's CPU)
Configuring the Printing Clients.
Setting up Printing from a Windows Client.
Open the Settings/Printers folder, and start the
Add Printer Wizard. Choose to add a Network Printer,
and browse the network to find the Printer Shares you configured on
the host (e.g., HP722C-PPA and HP722C-PS). If they are not visible,
either the Host or the network is not properly configured. Correct
the problem before proceding.
Normally, you will probably want to use
the native Windows HP PPA drivers, so select the printer Share that accepts
PPA input (e.g., HP722C-PPA). If the Host
is a Windows Host, it will provide the drivers over the network,
otherwise you will have to
find the printer in the list of available HP Printer drivers,
or click on Have Disk and install them from HP's installation CD.
You then get a chance to change the name with which the printer will be
known on the Client. Finally, you should choose to print a test page.
You might instead (or also) want to set up printing
services using the Printer Share that accepts Postscript
(e.g., HP722C-PS).
In that case, if the Host is not a Windows Host, choose a
"generic" PostScript printer like the
Apple LaserWriter II NT or the Digital turboPrintServer 20/Net.
If the test page prints sucessfully, you are finished!
Setting up Printing from a Linux/Unix Samba Client
First examine the network by opening a terminal window and
using the command
smbclient -L hostname
(where "hostname" should be replaced by the
network name of the Host to which the printer is attached).
This will list
the SMB services provided by that Host.
(Alternatively, your
system may have some graphical front-end to smbclient
that allows you to inspect the network.)
The list should include
the Printer Share(s) you configured on the Host
(e.g., HP722C-PPA and HP722C-PS). If these are
absent, you must first identify and correct the problem.
You must now configure the printer. The details of how to do this
will vary between Linux/Unix distributions, but there will probably
be support for network printing using Samba.
If the Printer Share
you wish to use is intended to accept PPA input
(e.g., HP722C-PPA), configure the Client to use the pnm2ppa
driver.
If it is intended to accept PostScript input
(e.g., HP722C-PS), configure the Client to print to a PostScript printer.
You may wish to configure both types of printers, and experiment
to see which provides the best printing services on your network.
See the SMB-HOWTO documentation for more information.
Emulating a PostScript printer on a Windows Host.
If you do not have commercial PostScript emulation software for Windows that
will work with your HP PPA DeskJet
(the author is unaware of any such software that supports PPA printers),
you can use Ghostscript together with HP's native Windows drivers.
Installing Ghostscript as the emulation software.
From the Ghostscript home page
download and install (in this order) the Windows packages of
Ghostscript (PostScript Emulation Software).
GSview (Ghostscript previewer, provides gsprint).
RedMon (printer port redirection utility).
(Install these using their setup.exe
installation tools, and do not manually
set up any configuration files for gsprint
or RedMon.)
You must now follow the detailed instructions below, and
use the Windows "Add Printer Wizard" to add a postscript
printer, and then
configure it to use the gsprint utility that comes with
GSview, and redirect the output to your HP PPA DeskJet using the RedMon utility.
Adding the fictitious Postscript printer.
In the following, I assume your printer is a HP DeskJet 722C,
and is installed with its native Windows Drivers as a printer
called "HP DeskJet 720C Series". Change printer
name entries
below as appropriate for your printer model.
The following instructions are tested on Windows 98, and may differ
on other Windows variants.
Open the Settings/Printers folder.
First check that the HP PPA Deskjet is correctly installed,
using HP's native Windows drivers. Right-click on its icon,
and select its Properties dialog. The General
Properties screen will open. This shows the exact name
that the printer was given when it was installed. Make a note of
it, and use the Print Test Page button
to confirm that the
printer is working. (The "Printer name:" line on the
test page will also show the exact name of the HP PPA Deskjet
that you will need to use when configuring the emulated postscript printer
below). When you are done,
click on OK to close the dialog.
Now start the Add Printer "Wizard".
Make the choices:
install a local printer select a PostScript printer from the
list of printers;
(e.g., one of the Apple LaserWriter models:
the Laserwriter II NT is known to work; Digital
PrintServer models such as the turboPrintServer 20/Net
have also been recommended). This will provide a
suitable postscript driver.
From the list of Available Ports, choose
"FILE: Creates a file on disk"
(you will change this after
the printer is installed)
set as default printer?: NO Print test page?: NORedirecting the output to the PPA printer.
After the printer has been installed,
right-click on its icon, and rename it to something like,
e.g.,
"Ghostscript+HP722C".
Then right click again and open its Properties dialog.
On the General tab screen,
enter something informative
in the Comment box, such as
" Emulated Postscript printer; output redirected
to a HP722C DeskJet printer" (optional).
Next select the Details tab.
The box "Print using the following driver:"
should show the
Postscript driver you selected (e.g., Apple LaserWriter II NT).
Click on Add Port.
Select other, then Redirected Port, which should be
available if RedMon was correctly installed, and click on
OK to accept these
settings and close the Add Port dialog.
On the Details tab screen,
The box "Print to the following port:"
should now show a
redirected port such as
"RPT1 [Redirected Port]".
Click on
Port Settings.
In the box
"Redirect port to the program:", enter the path to the
gsprint program. (If you accepted the defaults when installing it,
this may be C:\Ghostgum\gsview\gsprint.exe; you may
search for it by clicking on Browse).
In the box "arguments for this program are:"
enter the arguments to be passed to the
gsprint program (there is a document gsprint.htm
with more details of these in the folder containing gsprint.exe).
Suggested arguments are:
-printer "HP DeskJet 720C Series" -color -
Replace "HP DeskJet 720C Series" by the (quoted)
exact name of the HP PPA DeskJet printer that
you made a note of earlier. (If you do not copy this name exactly,
including any capitalization or spaces, things may not work!)
The -color argument is needed to
enable color printing;
(Whether you actually get color printing will depend on the local settings
of the "HP DeskJet 720C Series" printer
that really prints
the document.)
The final
" - " is required: without it,
the output of gsprint will not get redirected to
the printer.
The box "Output" should show
"Program handles output".
In the box "Run", select
"hidden".
The box "Shutdown delay" will say
"300 seconds". Print jobs for which processing by
gsprint takes longer than this will be terminated,
to avoid blocking the printer spool queue. Increase this limit
if necessary.
Now click on OK to close the Port Settings dialog.
Click on Spool Settings, and select
"Disable bi-directional support for this printer",
and click OK.
Finally, again select the General tab, and test the installation by
clicking on "Print a test page". If it works, you are
finished setting up Postscript emulation. Click OK to
exit the Printer Properties dialog.
(If you have problems, first check that you made the correct
entries in the Printer Properties dialogs, especially check that you
did not make any typing errors in the
exact name for the PPA DeskJet printer in thegsprint arguments box, which must correspond exactly
to the "Printer name" given to the HP PPA printer). If the problems
persist, you might get guidance from the
gsprint and RedMon documentation; look
in the folders where these were installed.)
You now have a working emulated
"Postscript printer" that can now be shared over
a network. (The "sharing" options will now be available
if you right-click on the emulated printer's icon.)
Limitations.
This emulated postscript
printer is most useful for providing printing services
to non-Windows
Clients on a samba network,
but can be also be used by Windows
Clients with the following limitations:
Windows Clients will be able to
select Print Settings only for the
visible ("front end") "Postscript printer",
but not for
the hidden ("back end") HP PPA DeskJet printer
that actually
does the printing.
Changes in the local Print Settings of the PPA driver for
the DeskJet printer on the
Host system (but not on Client systems, if it
too is shared) will affect network printing by the
"Postscript printer".
Since the
visible "Postscript printer" falsely
advertises its identity, some of its Print Settings
options seen by users on the Clients may not be valid.
The extra processing on the printer Host
may make printing rather slow compared to native Windows printing.
v0.4, October 28, 2000
Information and instructions
for printer calibration using pnm2ppa.
http://sourceforge.net/projects/pnm2ppa
(Updated for pnm2ppa-1.02 and later.)
Overview of Printer Calibration.
There are three main tasks you may need to carry out to fine-tune
your PPA printer:
Adjust the x-offset and y-offset to correctly center
the printed page on the paper
Adjust the relative offsets between black and colored ink
printing - this should be done each time you replace an ink
cartridge.
Match the colors of printed images to some other output device
- this is color correction and is
described in
COLOR.html (or COLOR.txt).
These instructions assume that you are already able to print postscript
files with your PPA printer. If your print filters
are properly configured, something like "lpr test.ps"
will successfully invoke ghostscript and pnm2ppa
to print the postscript file test.ps. Alternatively, you may be using
shell scripts like "lprbw", "lprcolor"
and "lpreco" supplied with the
pnm2ppa source code, and modified by you for your defaults; you may also
have defined special printing devices in /etc/printcap, e.g.
a "coloreco" device so you print
with lpr -P coloreco test.ps. These details vary with
the operating system and distribution you use.
(1) Centering the printed page on the paper.
This is done by adjusting the x-offset and y-offset parameters
xoffset and yoffset
in the pnm2ppa configuration file (usually
/etc/pnm2ppa.conf). The parameters are given in units of
1/600 inch; increasing xoffset moves the image
to the right, and increasing yoffset moves it downwards.
These offsets now have default values defined for each printer model,
and you will probably not need to adjust them.
Uncomment and make small adjustments to the default
values for these in the configuration file, until the printout is satisfactory.
(You can also use the '-x' and '-y'
command-line parameters.)
There are two ways to check the offsets.
either using the "calibrate_ppa" program.
or printing a suitable test page.
The "calibrate_ppa" program is a
stand-alone program distributed with pnm2ppa which
creates various test patterns in the raw
pixmap format accepted by pnm2ppa. (The three paper sizes,
US Letter, US Legal, and A4, are supported).
If your paper size is A4, and your printer filter accepts
the "-l" (direct output) option to lpr,
the command to run is:
(Substitute "letter" or "legal" for "a4" to change
the papersize; if no paper size is specified, it is assumed to
be letter.)
If "lpr -l" is not valid, you need to know which port your
printer is attached to. Assuming it is /dev/lp0, the above
command becomes
calibrate_ppa -s a4 --center | pnm2ppa --bw -i - -o /dev/lp0.
The pattern shows distances from the edge of the printed page
in units of 50 dots (1/12 inch), and diagonal lines that should
point to the corners. Change xoffset and yoffset
in the configuration file (usually /etc/pnm2ppa.conf
to center the pattern. The configuration file is
supplied with commented-out entries like
#xoffset 160 showing the default value. Remove
the "#" to activate the entry.
In Red Hat or Mandrake Linux distributions, a suitable test page is
/usr/lib/rhs/rhs-printfilters/testpage.ps
(US Letter paper) or
/usr/lib/rhs/rhs-printfilters/testpage-a4.ps
(A4 paper). (If these are not available, similar test pages
are supplied in the pnm2ppa source distribution.)
These pages have margins drawn at standard distances from the
edges of the paper, and can also be used to check the centering,
but are not as accurate
(2) Calibrating the X and Y Color Head Offsets.
The color ink offsets now have to be calibrated with respect to the black ink.
Because the relative position of the two ink cartridges
can move slightly,
this must be done whenever an ink cartridge is removed and replaced.
To print an alignment calibration pattern on a4 paper, run
On the printed page, there are four alignment patterns,
corresponding to configuration file
parameters ColOffsX, ColOffsY, colorshear
and blackshear. The central alignment patterns,
labelled "0" should be perfectly aligned. If they are
not, first
correct the shearing patterns, (see below).
Then identify the best-aligned ColOffsX
and ColOffsY patterns, and add or subtract the
positive or negative number below the pattern from the value in
the configuration file.
Check the result by printing the alignment test pattern:
The lines in the cross and square should be perfectly straight now.
The calibration can also be done by printing the test page
test.ps (found in the tarball
pnm2ppa-1.0.tar.gz; or installed
with the pnm2ppa documentation. (This is often in
/usr/doc/pnm2ppa*/.)
On the printout you see several images:
top left, you see a square with both black and colored items.
These should align correctly, or you have to change your settings.
You see a large vertical bar, and also a horizontal bar.
On the sides of the vertical bar there are a blue and a green line.
These should align with the 0 mark.
You also see a small vertical, and horizontal, bar, with a
red bar on its side.
If these items do NOT line up, you should take the following steps:
(1) take for the large bar the number of the tickmark just smaller
than the place where the green and blue lines point to. The minor
tick marks are 25 points.
(2) To this number, add the number of the tick mark at which a red tick
mark exactly lines up. This might not work if the offsets are way off;
in that case, apply the correction of step 1, and print again.
(3) Add the horizontal offset to the value
of ColOffsX, and the vertical offset to
the value of ColOffsY in the configuration file.
Now you can print test.ps again to see whether this procedure worked.
Shearing adjustments
If bidirectional printing causes "shearing" of vertical lines
(horizontal offsets of those parts of the line printed
by left-to-right print-head sweeps relative to those printed on
right-to-left sweeps) you can make small adjustments (in 1/600 inch)
units using the blackshear and colorshear
parameters in the configuration file. You can also suppress
bidirectional printing with a unimode 1
configuration file entry.
The third and fourth lines on the color head offset calibration page
(see above) correspond to color and black print head shearing corrections.
If the central alignment patterns (labeled "0")
are not aligned, add or subtract the positive or negative number
below the best-aligned pattern from the colorshear
and blackshear values in the configuration file.
Cleaning the Print Heads
You can use calibrate_ppa to clean the print heads by
printing patterns that exercise all the ink nozzles:
The first of these commands prints a cleaning pattern
with colored ink, the second uses black ink.
Other adjustments
The parameter blackness adjusts the number of black ink
drops printed per pixel. It takes values 1, 2, 3, or 4 (2 is the
default). Other values, like 0, suppress black ink.
Inks can also be suppressed by configuration file
entries
black_ink 0,
color_ink 0,
cyan_ink 0,
magenta_ink 0,
or yellow_ink 0.
These are mainly useful for debugging
the printer driver.
Next
Previous
Contents
pnm2ppa-1.13/docs/en/CALIBRATION.txt 0000644 0000764 0000764 00000017500 07505260041 013570 0000000 0000000 PPA Printer calibration for pnm2ppa
The pnm2ppa project team ppa-rpms@users.sourceforge.net
v0.4, October 28, 2000
Information and instructions for printer calibration using pnm2ppa.
http://sourceforge.net/projects/pnm2ppa (Updated for pnm2ppa-1.02 and
later.)
Overview of Printer Calibration.
There are three main tasks you may need to carry out to fine-tune your
PPA printer:
o Adjust the x-offset and y-offset to correctly center the printed
page on the paper
o Adjust the relative offsets between black and colored ink printing
- this should be done each time you replace an ink cartridge.
o Match the colors of printed images to some other output device -
this is color correction and is described in COLOR.html (or
COLOR.txt).
These instructions assume that you are already able to print
postscript files with your PPA printer. If your print filters are
properly configured, something like "lpr test.ps" will successfully
invoke ghostscript and pnm2ppa to print the postscript file test.ps.
Alternatively, you may be using shell scripts like "lprbw", "lprcolor"
and "lpreco" supplied with the pnm2ppa source code, and modified by
you for your defaults; you may also have defined special printing
devices in /etc/printcap, e.g. a "coloreco" device so you print with
lpr -P coloreco test.ps. These details vary with the operating
system and distribution you use.
(1) Centering the printed page on the paper.
This is done by adjusting the x-offset and y-offset parameters xoffset
and yoffset in the pnm2ppa configuration file (usually
/etc/pnm2ppa.conf). The parameters are given in units of 1/600 inch;
increasing xoffset moves the image to the right, and increasing
yoffset moves it downwards. These offsets now have default values
defined for each printer model, and you will probably not need to
adjust them. Uncomment and make small adjustments to the default
values for these in the configuration file, until the printout is
satisfactory. (You can also use the '-x' and '-y' command-line
parameters.)
There are two ways to check the offsets.
o either using the "calibrate_ppa" program.
o or printing a suitable test page.
The "calibrate_ppa" program is a stand-alone program distributed with
pnm2ppa which creates various test patterns in the raw pixmap format
accepted by pnm2ppa. (The three paper sizes, US Letter, US Legal, and
A4, are supported). If your paper size is A4, and your printer filter
accepts the "-l" (direct output) option to lpr, the command to run is:
calibrate_ppa -s a4 --center | pnm2ppa --bw -i - -o - | lpr -l
(Substitute "letter" or "legal" for "a4" to change the papersize; if
no paper size is specified, it is assumed to be letter.)
If "lpr -l" is not valid, you need to know which port your printer is
attached to. Assuming it is /dev/lp0, the above command becomes
calibrate_ppa -s a4 --center | pnm2ppa --bw -i - -o /dev/lp0.
The pattern shows distances from the edge of the printed page in
units of 50 dots (1/12 inch), and diagonal lines that should point to
the corners. Change xoffset and yoffset in the configuration file
(usually /etc/pnm2ppa.conf to center the pattern. The configuration
file is supplied with commented-out entries like #xoffset 160 showing
the default value. Remove the "#" to activate the entry.
In Red Hat or Mandrake Linux distributions, a suitable test page is
/usr/lib/rhs/rhs-printfilters/testpage.ps (US Letter paper) or
/usr/lib/rhs/rhs-printfilters/testpage-a4.ps (A4 paper). (If these
are not available, similar test pages are supplied in the pnm2ppa
source distribution.) These pages have margins drawn at standard
distances from the edges of the paper, and can also be used to check
the centering, but are not as accurate
(2) Calibrating the X and Y Color Head Offsets.
The color ink offsets now have to be calibrated with respect to the
black ink. Because the relative position of the two ink cartridges
can move slightly, this must be done whenever an ink cartridge is
removed and replaced.
To print an alignment calibration pattern on a4 paper, run
calibrate_ppa -s a4 --align | pnm2ppa --fd -i - -o - | lpr -l
On the printed page, there are four alignment patterns, corresponding
to configuration file parameters ColOffsX, ColOffsY, colorshear and
blackshear. The central alignment patterns, labelled "0" should be
perfectly aligned. If they are not, first correct the shearing
patterns, (see below). Then identify the best-aligned ColOffsX and
ColOffsY patterns, and add or subtract the positive or negative
number below the pattern from the value in the configuration file.
Check the result by printing the alignment test pattern:
calibrate_ppa --test | pnm2ppa -fd -i - -o - | lpr -l
The lines in the cross and square should be perfectly straight now.
The calibration can also be done by printing the test page test.ps
(found in the tarball pnm2ppa-1.0.tar.gz; or installed with the
pnm2ppa documentation. (This is often in /usr/doc/pnm2ppa*/.)
On the printout you see several images:
o top left, you see a square with both black and colored items.
These should align correctly, or you have to change your settings.
o You see a large vertical bar, and also a horizontal bar. On the
sides of the vertical bar there are a blue and a green line.
These should align with the 0 mark.
o You also see a small vertical, and horizontal, bar, with a red bar
on its side.
If these items do NOT line up, you should take the following steps:
o (1) take for the large bar the number of the tickmark just smaller
than the place where the green and blue lines point to. The minor
tick marks are 25 points.
o (2) To this number, add the number of the tick mark at which a red
tick mark exactly lines up. This might not work if the offsets are
way off; in that case, apply the correction of step 1, and print
again.
o (3) Add the horizontal offset to the value of ColOffsX, and the
vertical offset to the value of ColOffsY in the configuration file.
Now you can print test.ps again to see whether this procedure worked.
Shearing adjustments
If bidirectional printing causes "shearing" of vertical lines
(horizontal offsets of those parts of the line printed by left-to-
right print-head sweeps relative to those printed on right-to-left
sweeps) you can make small adjustments (in 1/600 inch) units using the
blackshear and colorshear parameters in the configuration file. You
can also suppress bidirectional printing with a unimode 1
configuration file entry.
The third and fourth lines on the color head offset calibration page
(see above) correspond to color and black print head shearing
corrections. If the central alignment patterns (labeled "0") are not
aligned, add or subtract the positive or negative number below the
best-aligned pattern from the colorshear and blackshear values in the
configuration file.
Cleaning the Print Heads
You can use calibrate_ppa to clean the print heads by printing
patterns that exercise all the ink nozzles:
calibrate_ppa --clean | pnm2ppa -p -i - -o - | lpr -l
calibrate_ppa --clean | pnm2ppa --bw -i - -o - | lpr -l
The first of these commands prints a cleaning pattern with colored
ink, the second uses black ink.
Other adjustments
The parameter blackness adjusts the number of black ink drops printed
per pixel. It takes values 1, 2, 3, or 4 (2 is the default). Other
values, like 0, suppress black ink.
Inks can also be suppressed by configuration file entries black_ink 0,
color_ink 0, cyan_ink 0, magenta_ink 0, or yellow_ink 0. These are
mainly useful for debugging the printer driver.
pnm2ppa-1.13/docs/en/COLOR.html 0000644 0000764 0000764 00000017353 07176621443 013065 0000000 0000000
Color correction for pnm2ppa
Next
Previous
Contents
v0.6, October 28, 2000
Information and instructions
for color correction of pnm2ppa
color printing.
http://sourceforge.net/projects/pnm2ppa
(Updated for pnm2ppa-1.0 and later.)
Overview of Color correction.
Color Pixmap input to pnm2ppa (ppm format, produced
by the ghostscript output devices ppmraw or ppm)
specifies the color of a pixel as three coordinates (Red, Green, Blue) in the
range 0-255. The program pnm2ppa converts these to relative amounts
of Cyan, Magenta and Yellow ink drops printed on the page.
Color correction allows the user to attempt to match the printed
colors to some reference colors, such as those displayed on the
terminal, or those printed on a different printer, or those printed
on the same printer with a different
driver (such as the Win9x drivers supplied by HP with their PPA printers).
The color output from pnm2ppa can be controlled in two ways:
by a color correction "gamma" file, if it is installed.
By default this file is
/etc/pnm2ppa.gamma,
but it may also be specified with the pnm2ppa option
pnm2ppa ... -F gammafile ... .
if there is no gamma file, by three values
specified by keywords ( either
GammaR,
GammaG,
GammaB
or
RedGammaIdx,
BlueGammaIdx,
GreenGammaIdx) in the
pnm2ppa configuration file.
pnm2ppa will carry out "color correction",
unless it is called with the --noGamma command line option.
However, unless you set up a color correction scheme, the default
color correction does not change any colors.
Color correction is specified by three color intensity
functions (curves), one for each of
Red, Green, and Blue. In their simplest form, these curves
have a standard form controlled
by a single "gamma" parameter such as
GammaR. The more sophisticated correction, in the
file pnm2ppa.gamma, specifies these curves more generally
as a table of numbers that translate each possible
color intensity value to a new value.
Note that, in principle, different color corrections are needed
for different print quality settings, and for different
brands and qualities of paper!
At present the methods for constructing a color correction for
pnm2ppa are not very user-friendly. If you can improve
them, please help!.
Color correction with "gamma" values in the configuration file.
The PixMap (ppa) format specifies colors by an intensity for
each primary color, Red, Green and Blue, in the range 0-255, so
(0,0,0) is black, and (255,255,255) is white.
The standard color intensity enhancement function replaces the ppm
intensity i of each primary color by
Enh(i) which is the closest integer
to ( i / 256) raised to the power
Gamma, times 256.
You can specify the Gamma values in the configuration file
as decimal numbers GammaR, GammaG, GammaB,
but how do you find out what values to choose?. Perhaps by experimenting
with changing the Gamma values.
One method for constructing a Gamma correction
has been built into pnm2ppa, but it
wastes quite a lot of ink, and many users
find it less effective than producing a customized
color correction curve as described in the next section.
You must first use pnm2ppa to print a color test page, and then
generate a file gamma.ppm to compare to it.
To do this, type
pnm2ppa -g -i - -o /dev/lp0
(replace /dev/lp0 by whatever printer device your PPA printer uses,
or use ... -o - | lpr -l , etc.). Note also that
as pnm2ppa is not receiving any ghostscript input to tell it
the paper size, this must be correctly specified by a configuration
file entry or, e.g., a -s a4 option, if the default US Letter
paper is not being used. This procedure will print a color calibration
page.
The printed output is an array of sets of three colored bands,
red, blue and green, each of which increases in brightness from
left to right. The topmost set of bands should be referrred to as
bands "0", the next ones as "1", etc.
Next, run the extra program calibrate_ppa which will produce
a (large, 10MB) PixMap (ppm) file:
calibrate_ppa -g -o gamma.ppm
This will produce the PixMap file as
gamma.ppm in the current directory.
To color-correct the printer so that its colors match those on the
terminal screen,
you should now attempt to view the file gamma.ppm
using some application
(such as the GNU image manipulation program gimp, or xv)
that can view .ppm files. For each color, identify the
printed band (0, 1, 2, ... etc)
that most closely corresponds to the brightness profile
shown on the screen. The default values are now:
RedGammaIdx 0
GreenGammaIdx 0
BlueGammaIdx 0
(i.e., no color correction).
Enter your modified values for these in the pnm2ppa
configuration file (usually /etc/pnm2ppa.conf).
The actual Gamma value is then 1.0 - 0.033*(Color)GammaIdx ;
To color-correct with respect to another printer (or the Win9x drivers),
you must manage to print gamma.ppm on that other device, then
make the comparison. (Or print the output of pnm2ppa -g
on that device; the top line is the same uncorrected color data as
gamma.ppm.)
Color correction using a "gamma file".
A "gamma correction file" is a binary file containing
3 x 256 numbers,
which are lookup tables of corrected red green and blue
color intensities.
The program pnm2ppa will use a default correction file
/etc/pnm2ppa.gamma if it exists, unless the
--noGamma option is used. The default correction file
location can be changed by using the pnm2ppa
option -F gammafile , where "gammafile" is the name
(including the full path) of the gamma correction file to be used.
Currently, there are two available tools for constructing a gamma
correction file:
A graphical utility ppagammacorrect is available in the
PPA Color Correction Utilities section of
the pnm2ppa web page
http://sourceforge.net/projects/pnm2ppa,
(but at the time of writing,
this appears to be frozen in early stages of development, with
little documentation, and may not be fully functional).
Next
Previous
Contents
pnm2ppa-1.13/docs/en/COLOR.txt 0000644 0000764 0000764 00000014655 07505260041 012727 0000000 0000000 Color correction for pnm2ppa
The pnm2ppa project team ppa-rpms@users.sourceforge.net
v0.6, October 28, 2000
Information and instructions for color correction of pnm2ppa color
printing. http://sourceforge.net/projects/pnm2ppa (Updated for
pnm2ppa-1.0 and later.)
Overview of Color correction.
Color Pixmap input to pnm2ppa (ppm format, produced by the ghostscript
output devices ppmraw or ppm) specifies the color of a pixel as three
coordinates (Red, Green, Blue) in the range 0-255. The program
pnm2ppa converts these to relative amounts of Cyan, Magenta and Yellow
ink drops printed on the page.
Color correction allows the user to attempt to match the printed
colors to some reference colors, such as those displayed on the
terminal, or those printed on a different printer, or those printed
on the same printer with a different driver (such as the Win9x
drivers supplied by HP with their PPA printers).
The color output from pnm2ppa can be controlled in two ways:
o by a color correction "gamma" file, if it is installed. By
default this file is /etc/pnm2ppa.gamma, but it may also be
specified with the pnm2ppa option
pnm2ppa ... -F gammafile ... .
o if there is no gamma file, by three values specified by keywords
( either GammaR, GammaG, GammaB or RedGammaIdx, BlueGammaIdx,
GreenGammaIdx) in the pnm2ppa configuration file.
pnm2ppa will carry out "color correction", unless it is called with
the --noGamma command line option. However, unless you set up a color
correction scheme, the default color correction does not change any
colors.
Color correction is specified by three color intensity functions
(curves), one for each of Red, Green, and Blue. In their simplest
form, these curves have a standard form controlled by a single "gamma"
parameter such as GammaR. The more sophisticated correction, in the
file pnm2ppa.gamma, specifies these curves more generally as a table
of numbers that translate each possible color intensity value to a new
value.
Note that, in principle, different color corrections are needed for
different print quality settings, and for different brands and
qualities of paper!
At present the methods for constructing a color correction for
pnm2ppa are not very user-friendly. If you can improve them, please
help!.
Color correction with "gamma" values in the configuration file.
The PixMap (ppa) format specifies colors by an intensity for each
primary color, Red, Green and Blue, in the range 0-255, so (0,0,0) is
black, and (255,255,255) is white. The standard color intensity
enhancement function replaces the ppm intensity i of each primary
color by
Enh(i) which is the closest integer to ( i / 256) raised to the
power Gamma, times 256.
You can specify the Gamma values in the configuration file as decimal
numbers GammaR, GammaG, GammaB, but how do you find out what values to
choose?. Perhaps by experimenting with changing the Gamma values.
A source of information on Gamma color correction is
www.cgsd.com/papers/gamma.html
One method for constructing a Gamma correction has been built into
pnm2ppa, but it wastes quite a lot of ink, and many users find it less
effective than producing a customized color correction curve as
described in the next section.
You must first use pnm2ppa to print a color test page, and then
generate a file gamma.ppm to compare to it. To do this, type
pnm2ppa -g -i - -o /dev/lp0
(replace /dev/lp0 by whatever printer device your PPA printer uses, or
use ... -o - | lpr -l , etc.). Note also that as pnm2ppa is not
receiving any ghostscript input to tell it the paper size, this must
be correctly specified by a configuration file entry or, e.g., a -s
a4 option, if the default US Letter paper is not being used. This
procedure will print a color calibration page.
The printed output is an array of sets of three colored bands, red,
blue and green, each of which increases in brightness from left to
right. The topmost set of bands should be referrred to as bands "0",
the next ones as "1", etc.
Next, run the extra program calibrate_ppa which will produce a (large,
10MB) PixMap (ppm) file:
calibrate_ppa -g -o gamma.ppm
This will produce the PixMap file as gamma.ppm in the current direc-
tory.
To color-correct the printer so that its colors match those on the
terminal screen, you should now attempt to view the file gamma.ppm
using some application (such as the GNU image manipulation program
gimp, or xv) that can view .ppm files. For each color, identify the
printed band (0, 1, 2, ... etc) that most closely corresponds to the
brightness profile shown on the screen. The default values are now:
RedGammaIdx 0
GreenGammaIdx 0
BlueGammaIdx 0
(i.e., no color correction). Enter your modified values for these in
the pnm2ppa configuration file (usually /etc/pnm2ppa.conf).
The actual Gamma value is then 1.0 - 0.033*(Color)GammaIdx ;
To color-correct with respect to another printer (or the Win9x
drivers), you must manage to print gamma.ppm on that other device,
then make the comparison. (Or print the output of pnm2ppa -g on that
device; the top line is the same uncorrected color data as
gamma.ppm.)
Color correction using a "gamma file".
A "gamma correction file" is a binary file containing 3 x 256 numbers,
which are lookup tables of corrected red green and blue color
intensities.
The program pnm2ppa will use a default correction file
/etc/pnm2ppa.gamma if it exists, unless the --noGamma option is used.
The default correction file location can be changed by using the
pnm2ppa option -F gammafile , where "gammafile" is the name
(including the full path) of the gamma correction file to be used.
Currently, there are two available tools for constructing a gamma
correction file:
o A graphical utility ppagammacorrect is available in the PPA Color
Correction Utilities section of the pnm2ppa web page
http://sourceforge.net/projects/pnm2ppa, (but at the time of
writing, this appears to be frozen in early stages of development,
with little documentation, and may not be fully functional).
o A working procedure is given in
http://download.sourceforge.net/pnm2ppa/color-calibrate-1.0.tar.gz,
which is made available by Klamer Schutte. This is the method
recommended by many users.
pnm2ppa-1.13/docs/en/CREDITS 0000644 0000764 0000764 00000001737 07072327606 012337 0000000 0000000 CREDITS
-------
This project would not be where it is without the help of the following
people (in firstname alphabetical order):
Andrew van der Stock - rampant featuritis and general code enhancer since Sept 1999
Ben Boule - first contacted me about the 720 series and helped with testing
Duncan Haldane - Redhat doco, fixes, RH print filter, RPM maintainer;
extensive debugging of code, Jan-April 2000,
Giorgio Marzano - heaps of quality bug fixes and features since May 1999
Javier Sandano - hp-ppa-printing-howto
Jim Peterson - spent hours modifying the code for the 720 and adding lots of
features, including all the configurability options.
Kirk Reiten - helped with testing the 1000 series code
Klamer Schutte - Fixed calibrate.c to work with pnm2ppa
Michael Mancini - additonal BeOS support
Panayotis Vryonis - author of the first version of the README.REDHAT file.
Tim Norman - original author, web site maintainer
Tomasz Patora - Polish translation of documentation
pnm2ppa-1.13/docs/en/INSTALL 0000644 0000764 0000764 00000015025 11313234742 012332 0000000 0000000 pnp2ppa-1.13, December 2009.
Overview
--------
This file contains some quick notes on installation in general.
For more information on pnm2ppa, see INSTALL.REDHAT.txt or
INSTALL.REDHAT.html, which (despite its name) has a lot of
non-RedHat-specific information.
Configuration
-------------
Run 'configure' to setup the package. Run it with the following switches
to get the same result as in the previous releases:
./configure --sysconfdir=/etc
add:
'--enable-debug' to get a more verbose program (default is no). This switch
is intended for developers.
'--disable-syslog' to disable the syslog feature. Its checked by default, if
the system supports a syslog feature.
This optione replaces the previous Makefile -D__NO_SYSLOG__ modification
'--with-language=[EN | CZ | ES | FR | IT | NL]' to select one of the compiled
in languages. 'EN' is the default.
'--enable-vlink' to also build the 'parse_vlink' tool
Compilation
-----------
To build pnm2ppa, simply cd to the source directory, and type:
make
If you wish to do any further development of pnm2ppa, or study how it works
so you can write a PPA backend to some other print system such as gimp-print,
there is a useful tool called parse_vlink (and some documentation)
that can be built in the ppa_protocol subdirectory.
Installation
------------
Two binaries are created: calibrate_ppa and pnm2ppa (and on demand parse_vlink).
calibrate_ppa is used to calibrate your printer (center the printed page,
adjust the offset between black and color ink cartridges after changing them,
etc.) See the CALIBRATION.* file for details.
The other binary created, pnm2ppa, is a converter from a PNM
image to a stream of PPA data that can be sent directly to the printer.
The PNM image will be aasumed to have a resolution of 600 dpi (or 300dpi
if the --dpi300 command line option is used). (Input at higher/lower
resolutions will print with an incorrect larger/smaller size, if it
is within the allowed page size limits.) These files can be generated
with ghostscript. The binary-output pbmraw, pgmraw, ppmraw devices
are supported (the text-output pbm, pgm, ppm devices are also supported, but
the raw devices are MUCH faster!).
The pnmraw and pgnmraw devices are switches that will try to select among
the raw formats, as appropriate for the document, but do not always make
the correct choice.
You should now type
make install
to install the binaries (by default, in /usr/local/bin/) ,
the manpage (in /usr/local/man/man1), and the sample
configuration file (/usr/local/etc/pnm2ppa.conf). You may change these
locations by using the --sysconfdir/--prefix parameter when running the
'configure' step.
*** IMPORTANT ***
The default configuration file /usr/local/etc/pnm2ppa.conf sets the printer model
to "version 0" (NULL printer). Unless you use the -v command line option
to set the printer model (as is usually done by CUPS, lprNG, etc. scripts that
call pnm2ppa), you must edit the configuration file to change this line and
choose the correct printer version (720, 820, 1000, etc).
If the printer version is unspecified, it defaults to "720" (valid for
HP710C/712C/720C/722C).
Other things you can do are documented in the sample configuration
file /usr/local/etc/pnm2ppa.conf
Usage
-----
To print a postscript file with this program, You may use a simple
shell script:
#!/bin/sh
cat $1 | \
gs -sDEVICE=ppmraw -sPAPERSIZE=letter -q -dNOPAUSE -r600 -sOutputFile=- - | \
pnm2ppa $2 $3 $4 $5 $6 $7 -i - -o - | lpr -l
Any valid ghostscript papersize like "legal", "a4", etc.
can be substituted for "letter"
(in fact, "letter" is the default, so the "-sPAPERSIZE=letter" is
not really needed.)
If this script is placed in /usr/local/bin/ppaprint ,
ppaprint file.ps
will print the postscript file file.ps in high quality color. Other
options are:
ppapprint file.ps --eco // economy color ink mode
ppaprint file.ps --bw // black and white
ppaprint file.ps --bw --eco // black and white economy mode
etc. In the example, up to six pnm2ppa options can be added (see
"man pnm2ppa" to list options, or "pnm2ppa --h" ).
You may wish to replace the ghostscript output device "ppmraw" with
"pbmraw" for only black and white printing - it is somewhat faster -
or "pgmraw" for greyscale images.
an ascii file could be printed in black and white with the script
#!/bin/sh
enscript -2rj $1 | \
gs -sDEVICE=pbmraw -sPAPERSIZE=letter -q -dNOPAUSE -r600 -sOutputFile=- - | \
pnm2ppa --bw $2 $3 $4 $5 $6 $7 -i - -o - | lpr -l
Integration into Printing Systems
-----------------------------------
(A) lpr, LPRng systems
You can set up printer filters. See the documentation for
your print spooler for information on how to do that.
The subdirectory lpd of the pnm2ppa distribution contains a
printer description file "printcap" and so filters to go with it.
See the README.lpd file there.
The subdirectory ppaSet of the pnm2ppa distribution contains a
software to help configuring the printer (and better, for each user in the
system), for both GTK and ncurses. Just see README file there. This
software is fully compatible with the previous one, not a replacement.
On some Linux distributions, (RedHat, Mandrake, ... etc.), packages
that install pnm2ppa and appropriate printer filters will be available
to do all this for you. On others, you must do this manually, for
example using the files in our lpd subdirectory. See lpd/README.lpd
in the pnm2ppa source distribution.
Note: the "foomatic" data base at http://www.linuxprint.org now supports
pnm2ppa, and produces scripts for configuring lpd-based systems. RedHat
use this system since RedHat 7.2
An older printfilter system for lpd systems that also supports pnm2ppa is
apsfilter (http://www.apsfilter.org).
---------------
(B) PDQ ("Print, Don't Queue")
PDQ is an alternative, spooler-free printing system
available from http://pdq.sourceforge.net
The pdq subdirectory of the pnm2ppa source provides a pdq driver, gs-pnm2ppa
----------------
(C) CUPS ("Common Unix Printing System")
pnm2ppa is now integrated into the CUPS printing system:
see http://www.cups.org. The "cupsomatic" scripts from the
http://www.linuxprinting.org site support pnm2ppa on CUPS.
"ppaSet": a Graphical User Interface for configuring pnm2ppa:
-------------------------------
There is also a new graphical (gtk-based) utility for creating
a pnm2ppa.conf configuration file and also can act as a front end to the
calibration utility calibrate_ppa. It is written by Javier Sedano,
and called ppaSet. Find it at http://sourceforge.net/projects/pnm2ppa.
pnm2ppa-1.13/docs/en/INSTALL.BEOS 0000644 0000764 0000764 00000003074 07201342011 013050 0000000 0000000 Note on installation on BeOS.
(1)
You should edit the Makefile to adjust it for BeOS.
-- The locations of the binaries pnm2ppa and calibrate_ppa may need
to be changed. (One succesful BeOS user put them in
/boot/home/config/bin )
-- The location of the manpage pnm2ppa.1 may need to be changed.
(2)
scripts used for printing may need to be changed. Here is
what one happy BeOS user reported on the ppa.users@listbot.com list:
(available in the mailing lists section of http://pnm2ppa.sourceforge.net
see message #598, "No more BeOS woes", July 21, 2000)
----------------------------------------------------------------
"Yeah, baby! :) That mother prints! Here's what I did:
made a script called pnm
#!/bin/sh
pnm2ppa -i - -o /dev/parallel/parallel1
and then I made my printps script as follows
#!/bin/sh
cat $1 | gs -sDEVICE=ppmraw -q -dNOPAUSE -r600 -sOutputFile=\|pnm -
The neatto trick here is the -sOutputFile=\|pnm voodoo. For whatever reason,
it likes that mo better. Thanks for everyone's help."
-----------------------------------------------------------------
This BeOS user apparently had difficulties with scripts using the standard
pipe syntax for sending ghostscript output to pnm2ppa:
cat $1 | gs -sDEVICE=ppmraw -q -dNOPAUSE -r600 -sOutputFile=- - | pnm
(3)
On BeOS, pnm2ppa does not send messages to the system log. They go to
the standard error stream unless "silent 1" is specified in /etc/pnm2ppa.conf.
-----------------------
If you can provide us with an improved INSTALL.BEOS and Makefile,
please contact the pnm2ppa project.
pnm2ppa-1.13/docs/en/INSTALL.CALDERA 0000644 0000764 0000764 00000000016 07036515603 013363 0000000 0000000 To be written
pnm2ppa-1.13/docs/en/INSTALL.MANDRAKE.html 0000644 0000764 0000764 00000006335 07501053374 014466 0000000 0000000
PPA Printer-Support RPM Packages for MANDRAKE Linux distributions.
Next
Previous
Contents
PPA Printer-Support RPM Packages for MANDRAKE Linux distributions.
v0.2 June 11, 2002
Information about using pnm2ppa with Mandrake. (Updated for pnm2ppa-1.04 and later.)
Mandrake-specific issues.
See the document
INSTALL.REDHAT.html
for installation and setup. That document is written
for Red Hat; note the Mandrake-specific differences
listed below,
To update pnm2ppa
in any recent Mandrake release (7.2 or later) from v1.04 to v1.10,
the simplest procedure may be
just to compile pnm2ppa from tarball source and replace the Mandake binaries
/usr/bin/pnm2ppa and /usr/bin/calibrate_ppa with
the new versions. They should function as drop-in replacements,
with the same user interface, but improved image quality.
(You may also wish to use the newer pnm2ppa.conf configuration
file template).
Mandrake 7.0 and earlier has incompatible and non-functional
pnm2ppa support which must be replaced.
Please use
printtool to delete any installed PPA printers BEFORE
upgrading rhs-printfilters. (If you forget to do this, and
printtool will not start after the update, delete or move your
/etc/printcap file.)
Install the pnm2ppa RPM package.
Then update rhs-printfilters with
rhs-printfilters-1.58-4ppa5mdk.i386.rpm
from
http://sourceforge.net/projects/pnm2ppa.
(Do NOT use rhs-printfilters-1.57-4ppa4.i386.rpm
which is for RedHat systems only.)
Mandrake-7.1 supplies a pnm2ppa RPM and has support for
it in rhs-printfilters. Mandrake 7.1 has a configuration
tool DrakConf for setting up printers, which may
be an interface to printtool.
Some users have reported difficulties with this. In that case, just use
printtool to configure the printer.
Mandrake-7.2 does not have a separate pnm2ppa RPM package, but has
added pnm2ppa to the ghostscript RPM package. This creates
difficulties for updating pnm2ppa with the RPM package from
http://sourceforge.net/projects/pnm2ppa.
You will get reported conflicts with ghostscript
if you try to install the
pnm2ppa-1.04-1.i386.rpm package,
but it seems that you can
safely use the rpm option --force to force its installation.
Mandrake-7.2 also has moved to using CUPS as its printing system,
and appears to now have its own printer configuration tool, but still
includes pnm2ppa support in rhs-printfilters.
Next
Previous
Contents
pnm2ppa-1.13/docs/en/INSTALL.MANDRAKE.txt 0000644 0000764 0000764 00000004703 07505260041 014331 0000000 0000000 PPA Printer-Support RPM Packages for MANDRAKE Linux distri-
butions.
The pnm2ppa project team ppa-rpms@users.sourceforge.net
v0.2 June 11, 2002
Information about using pnm2ppa with Mandrake. (Updated for
pnm2ppa-1.04 and later.)
Mandrake-specific issues.
See the document INSTALL.REDHAT.html for installation and setup. That
document is written for Red Hat; note the Mandrake-specific
differences listed below,
To update pnm2ppa in any recent Mandrake release (7.2 or later) from
v1.04 to v1.10, the simplest procedure may be just to compile pnm2ppa
from tarball source and replace the Mandake binaries /usr/bin/pnm2ppa
and /usr/bin/calibrate_ppa with the new versions. They should
function as drop-in replacements, with the same user interface, but
improved image quality. (You may also wish to use the newer
pnm2ppa.conf configuration file template).
o Mandrake 7.0 and earlier has incompatible and non-functional
pnm2ppa support which must be replaced. Please use printtool to
delete any installed PPA printers BEFORE upgrading rhs-
printfilters. (If you forget to do this, and printtool will not
start after the update, delete or move your /etc/printcap file.)
Install the pnm2ppa RPM package. Then update rhs-printfilters with
rhs-printfilters-1.58-4ppa5mdk.i386.rpm from
http://sourceforge.net/projects/pnm2ppa. (Do NOT use rhs-
printfilters-1.57-4ppa4.i386.rpm which is for RedHat systems only.)
o Mandrake-7.1 supplies a pnm2ppa RPM and has support for it in rhs-
printfilters. Mandrake 7.1 has a configuration tool DrakConf for
setting up printers, which may be an interface to printtool. Some
users have reported difficulties with this. In that case, just use
printtool to configure the printer.
o Mandrake-7.2 does not have a separate pnm2ppa RPM package, but has
added pnm2ppa to the ghostscript RPM package. This creates
difficulties for updating pnm2ppa with the RPM package from
http://sourceforge.net/projects/pnm2ppa. You will get reported
conflicts with ghostscript if you try to install the
pnm2ppa-1.04-1.i386.rpm package, but it seems that you can safely
use the rpm option --force to force its installation.
Mandrake-7.2 also has moved to using CUPS as its printing system,
and appears to now have its own printer configuration tool, but
still includes pnm2ppa support in rhs-printfilters.
pnm2ppa-1.13/docs/en/INSTALL.REDHAT.html 0000644 0000764 0000764 00000077275 07512500653 014265 0000000 0000000
PPA Printer-Support RPM Packages for Red Hat Linux and Compatible Distributions
Next
Previous
Contents
PPA Printer-Support RPM Packages for Red Hat Linux and Compatible Distributions
v0.30, July 9, 2002
Information and installation instructions
to accompany pnm2ppa packages for Red Hat Linux available at
http://sourceforge.net/projects/pnm2ppa
(Updated for pnm2ppa-1.10 and Red Hat 6.2 or later.)
See the "Troubleshooting" section at the end of
this document for
fixes to some reported problems
Overview of HP's PPA DeskJet Printers.
Most of Hewlett-Packard's DeskJet(tm) printers use the PCL3 command language,
and are currently supported by Ghostscript drivers. However, a few legacy
models,
namely
DeskJet 710C Series: HP DeskJet 710C, 712C
(discontinued)
DeskJet 720C Series: HP DeskJet 720C, 722C
(discontinued)
DeskJet 820C Series: HP DeskJet 820Cxi, 820Cse
(discontinued)
DeskJet 1000C Series: HP DeskJet 1000Cxi, 1000Cse
(discontinued)
feature "Host-based" printing,
and use HP's proprietary
PPA (Printer Performance Architecture) protocol,
instead of PCL. The two models in each series are physically
identical;
they just came with different bundled Windows software.
All PPA printers are now discontinued from HP's product lines,
but may still be found as second-hand legacy items.
PPA printers rely on software running on the
host CPU to carry out the low-level processing
of printer output that would be done by hardware in
a standard PCL printer. The relation of PPA printers to PCL printers
is analogous to the relation between "Winmodems" and true modems.
Presumably, the idea at the time was that this would allow cheaper hardware
to be used, but the decline in hardware prices probably meant that
the savings were not significant, and PPA printing seems to have been
abandoned.
Unfortunately, HP only supplied Windows software drivers for PPA printers,
and have indicated that it is unlikely that
they will ever make the proprietary PPA specs public.
This is apparently because of concerns that
publication of the specs might reveal crucial details
of HP's trade secrets about "color science" to competitors.
(A secondary issue
is that it is apparently possible to physically
damage the printer by sending it
bad sequences of PPA commands, which is not the case for PCL commands,
and it seems that HP do not wish to take any responsibility for such damage by
encouraging unofficial PPA programming.)
In the past, Linux users often inadvertently purchased PPA DeskJet models,
mistaking them for PCL3 DeskJets, which have traditionally
been well-supported
by Linux drivers.
Fortunately, a reverse engineering effort,
started in 1998 by Tim Norman,
and continued by the pnm2ppa project at
http://pnm2ppa.sourceforge.net,
and
http://sourceforge.net/projects/pnm2ppa
has managed to produce drivers that provide basic printing
functionality for these PPA printers under Linux and other
Unices. While HP have recently begun to release their own Linux
drivers for PCL3 DeskJets, they have not included drivers for their legacy
PPA printers in this effort.
The pnm2ppa driver has been stable since v1.04, released
October 2000, with no known reproducible bugs, except that image printing
quality was not so good. This version has been distributed with
Red Hat, and other Linux distributions. v1.10, released July 2002,
contains a lot of changes that improve image quality, in particular
by improved bidirectional printing, and
always printing black on top of color.
A better improvement would be for someone to make a PPA backend to
gimp-print, using
pnm2ppa as a guide for how to send data to PPA printers.
But, since PPA printers are now "legacy" hardware, and
pnm2ppa appears to
work fine for most printing tasks, it is unlikely that any new developers will
be interested in doing this, and there is currently no further development
anticipated. The project is currently in "low-maintenance mode".
The pnm2ppa driver for color printing with PPA printers.
Color printing with PPA printers is supported by the
pnm2ppa driver which is the successor to the older
black-and-white-only driver
pbm2ppa-0.8.6 developed by Tim Norman.
pnm2ppa
translates portable anymap (pnm)
format images into a stream of PPA instructions which can be sent to the
printer. In the driver name,
"pnm" stands for the superset
of three image formats:
ppm (portable "pixmap" format for color images),
pgm (portable "greymap" format for greyscale images),
and pbm (portable "bitmap" format for black and white images).
Ghostscript has a number of "output devices" that
produce pnm format output from postscript or pdf input.
These come in plain (text) and raw
(binary) variants. While pnm2ppa can now interpret
both plain and raw pnm formats, there is no point in using the
inefficient plain formats: always use the "raw"
output devices, which are:
ppmraw - raw pixmap format (color images);
pgmraw - raw greymap format (greyscale images);
pbmraw - raw bitmap format (black and white images);
pnmraw - selects between ppm, pgm, and pbm raw formats;
pgnmraw - selects between pgm and pbm raw formats.
The last two output devices are switches that try to analyze the
image, and select an appropriate format; however, they are not
recommended for routine use, as they may inconsistently choose the format.
The ghostscript
packages supplied with all recent Red Hat distributions provides all these
devices. To see the list of available
ghostscript output devices, type the command line
gs --help
if the required ppmraw or
pbmraw devices are not shown, you will have to upgrade your
version of ghostscript.
The data must be streamed directly from ghostscript to
pnm2ppa to the (local) printer without being
stored in any intermediate
file: one ppm-format (color) US Letter size page is represented
by 3x5100x6600 Bytes (100MB) in binary format and four times this amount in
text format.
An example of
a command line for printing a postscript
file file.ps using gs (ghostscript) and pnm2ppa is
(all on a single line). In this example the paper size is explicitly
given to gs as US Letter
(8.5"x11") size
(letter); pnm2ppa no longer needs to be told what
the paper size is, and will read it from the gs output (and check
that it is a permitted size for the printer type).
The pnm2ppa option --eco specifies "EconoFast"
mode, for a lower quality output which uses less ink, and prints faster,
and -v 720 specifies the PPA printer as belonging
to the DeskJet 720C series.
pnm2ppa expects that the input resolution is 600dpi
(or 300dpi if it is called with the pnm2ppa --dpi300 ...option).
This corresponds to the gs -r600 ... or
gs -r300 ... ghostscript options.
If other higher/lower input resolutions are used, the size of
the printed image will be larger/smaller, provided it is
within the printer's allowed size range.
Obviously, it would be impractical to type such a command each time
one wished to print something, and since RedHat 6.2, printfilter
support for pnm2ppa is built into Red Hat's printer
configuration scheme, so after configuration,
the simple command
lpr file.ps
should successfully print a postscript file.
However, in case you wish to check if something
is misconfigured in the print filters, you can use a script like the
above one to bypass them and check that the printer is working.
Also, if you wish to print to paper sizes supported by ghostscript,
but not supported by the Red Hat Printer configuration utilities, you can
use scripts like the one above.
The HP 710C, 720C, and 820C series support paper sizes from
3"x3" to 8.5"x14", while the 1000C
supports 4"x6" to 13"x19".
Available RPM packages.
A RPM package for pnm2ppa is part of the Red Hat Linux
distribution starting with Red Hat 6.2.
You will also find a RPM package for the latest release of
pnm2ppa
at
http://sourceforge.net/projects/pnm2ppa.
The latest version at the time
of writing is
pnm2ppa-1.10-1rh7x.i386.rpm, and is built on
Red Hat 7.3, or
pnm2ppa-1.10-1rh62.i386.rpm, built on
Red Hat 6.2.
If you are running a different release
of Red Hat (or a different Linux distribution)
you may need to download and rebuild the source RPM
pnm2ppa-1.10-1.src.rpm instead:
rpm --rebuild pnm2ppa-1.10-1.src.rpm
(You must be root to do this, and have the necessary
compilers installed; on Red Hat, the rebuilt binary RPM will be created in
the directory /usr/src/redhat/RPMS/i386/.)
Red Hat 6.2 and later also includes support for configuring your
printer to use pnm2ppa.
(Information necessary for configuring
pnm2ppa on older Red Hat releases has been removed from
this document; for this, see the documentation that came with
pnm2ppa-1.04, or update your RedHat distribution.)
Note: If you are still using Red Hat 6.2, you may wish to update the
print filter support for pnm2ppa that comes with it.
The pnm2ppa-1.10-1rh62*
RPM package supplies the necessary files that you can use.
After installing this RPM, see
/usr/lib/rhs/rhs-printfilters/README.ppa for details.
Installing the pnm2ppa RPM package and setting up the PPA printer.
To install the RPM package, you must log in as the system administrator,
root.
Now begin the installation. First install the pnm2ppa RPM:
rpm -Uvh pnm2ppa-1.10-1*.i386.rpm
The pnm2ppa executable gets installed in /usr/bin/.
The Linux kernel will be able to autodetect
IEEE-1284 devices like PPA printers, provided they are attached
to the parallel port with a bidirectional IEEE-1284 cable. (If your
printer works under Windows, you have the correct cable.)
A script detect_ppa is provided by the pnm2ppa
RPM: just type
detect_ppa
to confirm that your Printer is found.
A typical message from the printer, which will
be displayed if autodetection is successful, is:
A list of PPA printers found, and the parallel ports to which they are
attached, will also be shown.
At this point it is useful to test that your printer is working, by
printing a test page using the supplied script test_ppa
which the RPM has installed. You will need to know your
printer model (710, 712, 720, 722, 820, 1000), your paper size
(letter, legal, a4) and the printer port the printer is attached to.
If it is attached to the primary parallel port, this is
(usually) /dev/lp0.
Type
test_ppa
and give the details about printer model. papersize, and port number
when prompted.
You will then be asked
whether to print a test page, an offset calibration
page, or an alignment calibration page, etc.
Tip:
The test_ppa script
does not use the Red Hat print filters, so it is
useful when troubleshooting, for testing if any printing problems are
associated with the basic printer installation, or with the
configuration of the print filters.
Configuring the print filters.
Note: Red Hat 7.3 now features either CUPS or LPRng printer management.
The configuration tools should be able to configure pnm2ppa,
using the information about it taken from the Linux Printer Database.
Apart from the addition of a new --dpi300 option
to accept 300dpi input (useful for printing PNM output from 300dpi scanners),
there have been no changes in the pnm2ppa command line since the pnm2ppa-1.0
release, so the configuration scripts are stable. (They
can only use the default 600dpi input mode.)
Since Red Hat 7.1, there is a graphical
printer configuration utility printconf-gui. In Red Hat 6.2 and
7.0, the older configuration utility called printtool is used.
In either case,
start the "Red Hat Linux Print System Manager"
(as root) to
configure the printer, either
by clicking on the printer icon in Red Hat's "control-panel",
or just typing
printtool
which also starts printconf-gui in the newer Red Hat releases.
Configuring the print filters with the Red Hat 6.2/7.0 printtool
(Skip this section unless you are still using Red Hat 6.2 or 7.0)
The following description is for the older printtool that
is used by Red Hat 6.2/7.0. The printer configuration utility
printconf-gui for Red Hat 7.1 and later
is a little different, as it is based on the foomatic printer
configuration database which contains entries for pnm2ppa
(but not the older pbm2ppa). You should be able to easily figure out
what to do: it can configure all pnm2ppa command-line options in the
Driver Options screen.
In the Red Hat 6.2/7.0 Print System Manager window, click on Add, then
in the "Add a Printer Entry", select Local Printer, and
click Ok. Hopefully, the port on which the printer is attached
will be listed as "Detected" (if not,
fix the problem before continuing, perhaps by
adding the line "alias parport_lowlevel parport_pc"
to /etc/conf.modules).
You will now have to "edit
the local printer entry" for the PPA printer. Click on
Select to chose the "Input filter".
The Configure Filter screen will open.
Among the many printer entries in the list
"Printer Type", you should find three entries
HP DeskJet 1000 series (PPA) (for 1000Cse, 1000Cxi models)
HP DeskJet 710/720 series (PPA) (for 710C, 712C, 720C, 722C models)
HP DeskJet 820 series (PPA) (for 820Cse, 820Cxi models)
Select the appropriate
entry for your printer model. You will then be presented with
various options:
The Driver Description box contains information about the
driver (you may have to use the scrollbar at the right of the box
to read it all).
The resolution box shows a single
resolution (600x600). There are no other choices.
The Paper Size box allows
various choices (only letter, legal, and a4
seem correspond to native paper sizes printed by the Red Hat print filters;
the other choices, (a3, ledger, ...) appear to get resized by
the print filters to print on US Letter size paper (?) ).
(Other paper sizes cannot be selected this way, but you can
print to any papersize, if it supported by both ghostscript
and the printer, using a script, as described above, that bypasses
the RedHat printfilters.)
The Color Depth/ Uniprint Mode box allows various selections
of color and print quality (These are achieved by
using various combinations
of the pnm2ppa options
--eco (EconoFast mode), -p (disable black
ink cartridge) and --bw (black and white printing only),
without direct intervention by the user.) The choices (in the
most recent printerdb database) are:
Black and White, econofast mode (--bw --eco)
Black and White, normal quality (--bw)
Color, econofast mode (--eco --fd)
Color, normal quality (--eco)
Color, high quality
Color, normal quality, black ink disabled (-p --eco)
Color, high quality, black ink disabled (-p --uni)
(These are the choices that will be presented by "official"
rhs-printfilters-1.72; if you installed a pnm2ppa
RPM package from
the SourceForge pnm2ppa site, you may have a file
/usr/lib/rhs/rhs-printfilters/README.ppa explaining how to modify
earlier versions of rhs-printfilters to show these updated
choices.)
You may also see a choice to use the older "Legacy"
driver pbm2ppa (black and white only); this is
is stable but unmaintained; it may still be a useful
alternative to pnm2ppa on older, slower systems with
less available memory.
The three Printing options are not relevant here, and
should not be selected. They are for direct printing
of text (ascii) to non-postscript printers, but since the only way of printing
text files with pnm2ppa is
by first converting them to postscript(tm), this is not
possible on the PPA printer.
It is important that the choice
"Fast text printing (non-PS printers only)" is NOT selected,
so that the print filters will
convert text files to postscript before printing.
The Margins
entries control the margins used when printing text files
(these are instructions to the text-to-postscript
conversion process).
The Extra GS options box is not only a place for adding
options for ghostscript, but also for the PPA drivers.
Leave this box empty unless you know what you are doing.
As explained in the text in the Driver Description box
(you did read it, didn't you ?), the entry should be in the format:
gs_options PPA ppa_options
Anything before the
"PPA" is interpreted as a gs option, anything after it
is interpreted as a ppa option. You can learn about
pnm2ppa options by typing either "man pnm2ppa"
or "pnm2ppa --help" at a command line (hopefully, these
two sources of information will be consistent with each other!);
When you have made your choices, click on Ok to
save your selections and close the "Configure Filter" screen,
and then click on OK to close the "Edit Local Printer Entry"
screen.
You are now back in the "Red Hat Print System Manager" screen;
highlight the printer you just configured, and, in the Tests
menu, choose Print Postscript test page to print a test page using
the Red Hat print filters. If this printed correctly, your
print system is set up to use the PPA printer, just like any of the other
printers that the Red Hat print filters support.
Configuring pnm2ppa.conf and calibrating the printer.
A number of printer parameters are set to reasonable default values
for each of the printer models, but you may wish to "fine tune"
or calibrate your printer. The default values can be overridden
by entries in the configuration files, which by default are
/etc/pnm2ppa.conf and /etc/pbm2ppa.conf.
At 600dpi, one pixel is 1/600 inch.
The user-adjustable parameters are:
verbose 1 and silent 1. These control
messages about progress and errors from pnm2ppa. By default,
messages are sent to the system log /var/log/messages.
The verbose 1 keyword send copies to stderr, the
standard error stream to the terminal. The silent 1
keyword silences the stream of messages to the system log.
The system log messages may be silenced in the default
configuration file; switch off "silent"
mode with "silent 0" for debugging printer
problems (or use verbose mode).
The version keyword can be used to specify
the printer model as 710, 712, 720, 722, 820, or 1000.
It is not needed if you use the RedHat printool to
configure the printer.
xoffset and yoffset: the x-offset and y-offset
(in pixels) of the
printed image on the page, which should be chosen so the image
is correctly centered on the paper. (These can also be set with
the -x <xoff> and -y <yoff> options.)
See
CALIBRATION.html (or CALIBRATION.txt) for more information.
topmargin, bottommargin, leftmargin,
rightmargin: the four
margins, which define the distances (in pixels)
from the edges of the paper to the
printed region; parts of the image that are outside these margins
will not be printed.
(These can also be set with the
-t <top margin> ,
-b <bottom margin> ,
-l <left margin> , and
-r <right margin>
options.)
ColOffsX and ColOffsY: the x-offset and y-offset
(in pixels)
between the color image produced by the color ink printer head, and that
produced by the black ink printer head.
These should be recalibrated
each time an ink cartridge is replaced.
See
CALIBRATION.html (or CALIBRATION.txt) for more information.
blackshear and colorshear: these are x offsets
between right-to-left and left-to-right sweeps of the print head, one for
the black printing and one for the color printing. These provide sideways
offsets (in pixels) of the right-to-left sweeps,
that can be used to correct "shearing" when printing
in modes that use bidirectional print head sweeps.
unimode 1 will make unidirectional
print sweeps (left-to-right) the default, instead
of bidirectional sweeps. The --uni
and --bi options can control how a particular print
run is printed. Unidirectional printing is only useful
(it is slower) if there are issues of "shearing"
in high quality image printing.
blackness : this takes values 0,1,2,3 or 4 drops of
black ink per pixel, and controls black ink density in black-and-white
and "text-like" black regions in color printing. At present,
this has no effect on printing with the black ink cartridge disabled,
or on black regions identified as "image-like". (This can
also be set with the -B <n> option,
where n is the number of drops.)
GammaR, GammaG, and GammaB:
the are the three "gamma" parameters that define the
standard color correction
curves for red, green, and blue. Changing these will affect how
colors appear (decreasing any Gamma enhaces the corresponding color).
The Gamma values are specified as decimal numbers,
with Gamma = 1.0 corresponding to no color correction.
Gamma values can also be specified using integer numbers
RedGammaIdx, GreenGammaIdx, BlueGammaIdx;
These are determined by a procedure discussed in
COLOR.html or COLOR.txt,
which involves printing a test page. The papersize
keyword specifies the paper size used for this testpage,
because it is produced by pnm2ppa without the input that
usually specifies the page size.
The keywords
black_ink 0,
color_ink 0,
cyan_ink 0,
magenta_ink 0,
and yellow_ink 0
can be used to switch of the various inks; this can be useful
in troubleshooting and debugging pnm2ppa.
Use test_ppa to print various test pages
or calibration patterns to adjust the offsets.
If you wish to specify these
parameters using the command-line options
described above, in Red Hat 6.2/7.0 some of them can be
entered in the "extra GS options" box using the Print System Manager
(printtool), as described above.
In Red Hat 7.1 and later, all command-line options can be set using the new
printconf-gui utility.
Utility programs for the printer.
HP's Windows software provides a utility program
that sends PPA commands to tell the printer to perform
tasks like cleaning the printheads, etc.
On Red Hat Linux, You can use test_ppa
(which acts as a command-line front-end for
calibrate_ppa) to print head-cleaning patterns.
There is a graphical (gtk-based) tool
written by Javier Sedano
for creating
a pnm2ppa.conf file and acting as a front end to
calibrate_ppa.
This is called ppaSet, and a beta version of it can be found
in the same place as the pnm2ppa-1.10 distribution
at
http://sourceforge.net/projects/pnm2ppa
There was also at one time a proposal to add support for PPA printers to the
PUP (Printer Utility Program) utility, which is
also a project at
http://www.sourceforge.net.
However, as of the time of writing, no PUP support
for PPA printers is available.
Troubleshooting
The first thing to do is to look at the messages from pnm2ppa
in the system log to see what is happening, whether pnm2ppaactually received any input, and if it was valid.
(You may need to enable system log messages in
/etc/pnm2ppa.conf, see above.)
Maybe ghostscript failed to convert your postscript file into
PNM format: in that case the system log reports
"Fatal Error! Input image (pnm2ppa) is not a PNM image".
(note: when this occured, older versions of pnm2ppa reported
"Input image is not a supported PNM format" which
may have been confusing).
This is because the input received by pnm2ppa was not a valid
PNM image, but instead ghostscript failed to produce any
PNM output at all, and its only output was probably just an error message.
This is not a pnm2ppa problem!
Here are suggestions for dealing with other problems that you may encounter.
Printing fails in the middle of a print run, perhaps
when a figure embedded in the document is printing (in the latest
pnm2ppa versions, printing finishes normally, but an incomplete
document is printed). The system log
reports that read_line could not read the image, and found EOF
(end-of-file). This probably
means that ghostscript's "ppmraw" or
"pgmraw" output device started correctly, but
failed for some reason before finishing the image conversion
from postscript to PNM format, usually leaving a core dump.
(This has been seen to happen in ghostscript 5.10 ;
upgrading to ghostscript 5.50 solved the problem.) If you cannot
upgrade, try printing the document
in black-and-white using the ghostscript "pbmraw" output device.
You printed an image file using a "high quality"
printer setting, but it has visible horizontal lines
on it and printing under Windows(tm) 9x doesn't
show this effect (except in "economode").
These are probably "swath boundaries",
showing the junction between different sweeps of the print head.
Solution: using unidirectional printing (PPA option --uni,
or unimode 1 in /etc/pnm2ppa.conf) helps a little.
this problem is fixed in the pnm2ppa-1.10 release
"Flashing light syndrome ".
Your printer usually works, but you have found that some particular
documents cause the printer to fail, and the lights on its panel
start flashing rapidly in sequence. Solution, turn the printer off and back
on again. This is not supposed to happen any more; if it happens
reproducibly, contact the pnm2ppa developers, and offer to
make the offending
file available for testing and diagnosis of this problem.
(Don't sent it to the Mailing List unless requested).
Bug reports can be filed at
the SourceForge pnm2ppa site.
You wish to print on envelopes or other non-standard media
not supported by the print filters?
Solution: if you can get Ghostscript (gs) to
produce the correct image, and the paper size is in the range allowed
by your printer, you should be able to do this with a
script that bypasses the print filters, as described earlier
in this document.
Colors look wrong, or do not match what the Windows(tm) 9x driver
produces. Solution: check that
your color ink cartridge is
not running out of some ink color; if not,
(a) adjust the "gamma"
entries in /etc/pnm2ppa,conf, or (b)
install a customized color calibration file
/etc/pnm2ppa.gamma. See the file
COLOR.html (or COLOR.txt) for more information.
There are three mailing lists,
pnm2ppa-announce@lists.sourceforge.net (announcements),
pnm2ppa-users@lists.sourceforge.net (users helping users)
and pnm2ppa-devel@lists.sourceforge.net (developers).
You can subscribe to them, or browse their
archives, at
http://sourceforge.net/projects/pnm2ppa.
(The older pnm2ppa mailing lists died with the ListBot service)
To contact the developers, subscribe to ppa.devel and post a message.
There are Public Forums for posting questions
and comments
at
http://sourceforge.net/projects/pnm2ppa
(but whether you get any help from these, depends on
whether anyone is reading them (unlikely!)).
Next
Previous
Contents
pnm2ppa-1.13/docs/en/INSTALL.REDHAT.txt 0000644 0000764 0000764 00000067026 07512500653 014131 0000000 0000000 PPA Printer-Support RPM Packages for Red Hat Linux and Com-
patible Distributions
The pnm2ppa project team ppa-rpms@users.sourceforge.net
v0.30, July 9, 2002
Information and installation instructions to accompany pnm2ppa pack-
ages for Red Hat Linux available at http://sourceforge.net/pro-
jects/pnm2ppa (Updated for pnm2ppa-1.10 and Red Hat 6.2 or later.)
See the "Troubleshooting" section at the end of this document for
fixes to some reported problems
Overview of HP's PPA DeskJet Printers.
Most of Hewlett-Packard's DeskJet(tm) printers use the PCL3 command
language, and are currently supported by Ghostscript drivers.
However, a few legacy models, namely
o DeskJet 710C Series: HP DeskJet 710C, 712C (discontinued)
o DeskJet 720C Series: HP DeskJet 720C, 722C (discontinued)
o DeskJet 820C Series: HP DeskJet 820Cxi, 820Cse (discontinued)
o DeskJet 1000C Series: HP DeskJet 1000Cxi, 1000Cse (discontinued)
feature "Host-based" printing, and use HP's proprietary PPA (Printer
Performance Architecture) protocol, instead of PCL. The two models
in each series are physically identical; they just came with different
bundled Windows software. All PPA printers are now discontinued from
HP's product lines, but may still be found as second-hand legacy
items.
PPA printers rely on software running on the host CPU to carry out the
low-level processing of printer output that would be done by hardware
in a standard PCL printer. The relation of PPA printers to PCL
printers is analogous to the relation between "Winmodems" and true
modems. Presumably, the idea at the time was that this would allow
cheaper hardware to be used, but the decline in hardware prices
probably meant that the savings were not significant, and PPA printing
seems to have been abandoned.
Unfortunately, HP only supplied Windows software drivers for PPA
printers, and have indicated that it is unlikely that they will ever
make the proprietary PPA specs public. This is apparently because of
concerns that publication of the specs might reveal crucial details of
HP's trade secrets about "color science" to competitors. (A secondary
issue is that it is apparently possible to physically damage the
printer by sending it bad sequences of PPA commands, which is not the
case for PCL commands, and it seems that HP do not wish to take any
responsibility for such damage by encouraging unofficial PPA
programming.)
In the past, Linux users often inadvertently purchased PPA DeskJet
models, mistaking them for PCL3 DeskJets, which have traditionally
been well-supported by Linux drivers. Fortunately, a reverse
engineering effort, started in 1998 by Tim Norman, and continued by
the pnm2ppa project at http://pnm2ppa.sourceforge.net, and
http://sourceforge.net/projects/pnm2ppa has managed to produce drivers
that provide basic printing functionality for these PPA printers under
Linux and other Unices. While HP have recently begun to release their
own Linux drivers for PCL3 DeskJets, they have not included drivers
for their legacy PPA printers in this effort.
The pnm2ppa driver has been stable since v1.04, released October
2000, with no known reproducible bugs, except that image printing
quality was not so good. This version has been distributed with Red
Hat, and other Linux distributions. v1.10, released July 2002,
contains a lot of changes that improve image quality, in particular by
improved bidirectional printing, and always printing black on top of
color.
A better improvement would be for someone to make a PPA backend to
gimp-print, using pnm2ppa as a guide for how to send data to PPA
printers. But, since PPA printers are now "legacy" hardware, and
pnm2ppa appears to work fine for most printing tasks, it is unlikely
that any new developers will be interested in doing this, and there is
currently no further development anticipated. The project is
currently in "low-maintenance mode".
The pnm2ppa driver for color printing with PPA printers.
Color printing with PPA printers is supported by the pnm2ppa driver
which is the successor to the older black-and-white-only driver
pbm2ppa-0.8.6 developed by Tim Norman.
pnm2ppa translates portable anymap (pnm) format images into a stream
of PPA instructions which can be sent to the printer. In the driver
name, "pnm" stands for the superset of three image formats: ppm
(portable "pixmap" format for color images), pgm (portable "greymap"
format for greyscale images), and pbm (portable "bitmap" format for
black and white images).
Ghostscript has a number of "output devices" that produce pnm format
output from postscript or pdf input. These come in plain (text) and
raw (binary) variants. While pnm2ppa can now interpret both plain and
raw pnm formats, there is no point in using the inefficient plain
formats: always use the "raw" output devices, which are:
o ppmraw - raw pixmap format (color images);
o pgmraw - raw greymap format (greyscale images);
o pbmraw - raw bitmap format (black and white images);
o pnmraw - selects between ppm, pgm, and pbm raw formats;
o pgnmraw - selects between pgm and pbm raw formats.
The last two output devices are switches that try to analyze the
image, and select an appropriate format; however, they are not
recommended for routine use, as they may inconsistently choose the
format. The ghostscript packages supplied with all recent Red Hat
distributions provides all these devices. To see the list of
available ghostscript output devices, type the command line
gs --help
if the required ppmraw or pbmraw devices are not shown, you will have
to upgrade your version of ghostscript.
The data must be streamed directly from ghostscript to pnm2ppa to the
(local) printer without being stored in any intermediate file: one
ppm-format (color) US Letter size page is represented by 3x5100x6600
Bytes (100MB) in binary format and four times this amount in text
format.
An example of a command line for printing a postscript file file.ps
using gs (ghostscript) and pnm2ppa is
cat file.ps | gs -q -sDEVICE=ppmraw -r600 -sPAPERSIZE=letter -dNOPAUSE \
-sOutputFile=- - | pnm2ppa --eco -v 720 -i - -o - | lpr -l
(all on a single line). In this example the paper size is explicitly
given to gs as US Letter (8.5"x11") size (letter); pnm2ppa no longer
needs to be told what the paper size is, and will read it from the
gs output (and check that it is a permitted size for the printer
type). The pnm2ppa option --eco specifies "EconoFast" mode, for a
lower quality output which uses less ink, and prints faster, and -v
720 specifies the PPA printer as belonging to the DeskJet 720C series.
o pnm2ppa expects that the input resolution is 600dpi (or 300dpi if
it is called with the pnm2ppa --dpi300 ...option). This
corresponds to the gs -r600 ... or gs -r300 ... ghostscript
options. If other higher/lower input resolutions are used, the
size of the printed image will be larger/smaller, provided it is
within the printer's allowed size range.
Obviously, it would be impractical to type such a command each time
one wished to print something, and since RedHat 6.2, printfilter
support for pnm2ppa is built into Red Hat's printer configuration
scheme, so after configuration, the simple command
lpr file.ps
should successfully print a postscript file. However, in case you
wish to check if something is misconfigured in the print filters, you
can use a script like the above one to bypass them and check that the
printer is working.
o Also, if you wish to print to paper sizes supported by ghostscript,
but not supported by the Red Hat Printer configuration utilities,
you can use scripts like the one above. The HP 710C, 720C, and
820C series support paper sizes from 3"x3" to 8.5"x14", while the
1000C supports 4"x6" to 13"x19".
Available RPM packages. A RPM package for pnm2ppa is part of the
Red Hat Linux distribution starting with Red Hat 6.2. You will also
find a RPM package for the latest release of pnm2ppa at
http://sourceforge.net/projects/pnm2ppa.
The latest version at the time of writing is
pnm2ppa-1.10-1rh7x.i386.rpm, and is built on Red Hat 7.3, or
pnm2ppa-1.10-1rh62.i386.rpm, built on Red Hat 6.2. If you are running
a different release of Red Hat (or a different Linux distribution)
you may need to download and rebuild the source RPM
pnm2ppa-1.10-1.src.rpm instead:
rpm --rebuild pnm2ppa-1.10-1.src.rpm
(You must be root to do this, and have the necessary compilers
installed; on Red Hat, the rebuilt binary RPM will be created in the
directory /usr/src/redhat/RPMS/i386/.)
Red Hat 6.2 and later also includes support for configuring your
printer to use pnm2ppa. (Information necessary for configuring
pnm2ppa on older Red Hat releases has been removed from this document;
for this, see the documentation that came with pnm2ppa-1.04, or update
your RedHat distribution.) Note: If you are still using Red Hat 6.2,
you may wish to update the print filter support for pnm2ppa that comes
with it. The pnm2ppa-1.10-1rh62* RPM package supplies the necessary
files that you can use. After installing this RPM, see
/usr/lib/rhs/rhs-printfilters/README.ppa for details.
Installing the pnm2ppa RPM package and setting up the PPA printer.
To install the RPM package, you must log in as the system
administrator, root.
Now begin the installation. First install the pnm2ppa RPM:
rpm -Uvh pnm2ppa-1.10-1*.i386.rpm
The pnm2ppa executable gets installed in /usr/bin/.
The Linux kernel will be able to autodetect IEEE-1284 devices like
PPA printers, provided they are attached to the parallel port with a
bidirectional IEEE-1284 cable. (If your printer works under Windows,
you have the correct cable.) A script detect_ppa is provided by the
pnm2ppa RPM: just type
detect_ppa
to confirm that your Printer is found. A typical message from the
printer, which will be displayed if autodetection is successful, is:
CLASS:PRINTER;
MODEL:DESKJET 820C;
MANUFACTURER:HEWLETT-PACKARD;
DESCRIPTION:Hewlett-Packard DeskJet 820C;
COMMAND SET:SCP,VLINK;
A list of PPA printers found, and the parallel ports to which they are
attached, will also be shown.
At this point it is useful to test that your printer is working, by
printing a test page using the supplied script test_ppa which the RPM
has installed. You will need to know your printer model (710, 712,
720, 722, 820, 1000), your paper size (letter, legal, a4) and the
printer port the printer is attached to. If it is attached to the
primary parallel port, this is (usually) /dev/lp0. Type
test_ppa
and give the details about printer model. papersize, and port number
when prompted. You will then be asked whether to print a test page,
an offset calibration page, or an alignment calibration page, etc.
o Tip: The test_ppa script does not use the Red Hat print filters, so
it is useful when troubleshooting, for testing if any printing
problems are associated with the basic printer installation, or
with the configuration of the print filters.
Configuring the print filters.
Note: Red Hat 7.3 now features either CUPS or LPRng printer
management. The configuration tools should be able to configure
pnm2ppa, using the information about it taken from the Linux Printer
Database. Apart from the addition of a new --dpi300 option to accept
300dpi input (useful for printing PNM output from 300dpi scanners),
there have been no changes in the pnm2ppa command line since the
pnm2ppa-1.0 release, so the configuration scripts are stable. (They
can only use the default 600dpi input mode.)
Since Red Hat 7.1, there is a graphical printer configuration utility
printconf-gui. In Red Hat 6.2 and 7.0, the older configuration
utility called printtool is used. In either case, start the "Red Hat
Linux Print System Manager" (as root) to configure the printer, either
by clicking on the printer icon in Red Hat's "control-panel", or just
typing
printtool
which also starts printconf-gui in the newer Red Hat releases.
Configuring the print filters with the Red Hat 6.2/7.0 printtool
(Skip this section unless you are still using Red Hat 6.2 or 7.0)
The following description is for the older printtool that is used by
Red Hat 6.2/7.0. The printer configuration utility printconf-gui for
Red Hat 7.1 and later is a little different, as it is based on the
foomatic printer configuration database which contains entries for
pnm2ppa (but not the older pbm2ppa). You should be able to easily
figure out what to do: it can configure all pnm2ppa command-line
options in the Driver Options screen.
In the Red Hat 6.2/7.0 Print System Manager window, click on Add, then
in the "Add a Printer Entry", select Local Printer, and click Ok.
Hopefully, the port on which the printer is attached will be listed as
"Detected" (if not, fix the problem before continuing, perhaps by
adding the line "alias parport_lowlevel parport_pc" to
/etc/conf.modules). You will now have to "edit the local printer
entry" for the PPA printer. Click on Select to chose the "Input
filter". The Configure Filter screen will open. Among the many
printer entries in the list "Printer Type", you should find three
entries
o HP DeskJet 1000 series (PPA) (for 1000Cse, 1000Cxi models)
o HP DeskJet 710/720 series (PPA) (for 710C, 712C, 720C, 722C models)
o HP DeskJet 820 series (PPA) (for 820Cse, 820Cxi models)
Select the appropriate entry for your printer model. You will then
be presented with various options:
o The Driver Description box contains information about the driver
(you may have to use the scrollbar at the right of the box to read
it all).
o The resolution box shows a single resolution (600x600). There are
no other choices.
o The Paper Size box allows various choices (only letter, legal, and
a4 seem correspond to native paper sizes printed by the Red Hat
print filters; the other choices, (a3, ledger, ...) appear to get
resized by the print filters to print on US Letter size paper (?)
). (Other paper sizes cannot be selected this way, but you can
print to any papersize, if it supported by both ghostscript and the
printer, using a script, as described above, that bypasses the
RedHat printfilters.)
o The Color Depth/ Uniprint Mode box allows various selections of
color and print quality (These are achieved by using various
combinations of the pnm2ppa options --eco (EconoFast mode), -p
(disable black ink cartridge) and --bw (black and white printing
only), without direct intervention by the user.) The choices (in
the most recent printerdb database) are:
o Black and White, econofast mode (--bw --eco)
o Black and White, normal quality (--bw)
o Color, econofast mode (--eco --fd)
o Color, normal quality (--eco)
o Color, high quality
o Color, normal quality, black ink disabled (-p --eco)
o Color, high quality, black ink disabled (-p --uni)
(These are the choices that will be presented by "official" rhs-
printfilters-1.72; if you installed a pnm2ppa RPM package from the
SourceForge pnm2ppa site, you may have a file /usr/lib/rhs/rhs-
printfilters/README.ppa explaining how to modify earlier versions
of rhs-printfilters to show these updated choices.)
You may also see a choice to use the older "Legacy" driver pbm2ppa
(black and white only); this is is stable but unmaintained; it may
still be a useful alternative to pnm2ppa on older, slower systems
with less available memory.
o The three Printing options are not relevant here, and should not be
selected. They are for direct printing of text (ascii) to non-
postscript printers, but since the only way of printing text files
with pnm2ppa is by first converting them to postscript(tm), this is
not possible on the PPA printer.
o It is important that the choice "Fast text printing (non-PS
printers only)" is NOT selected, so that the print filters will
convert text files to postscript before printing.
o The Margins entries control the margins used when printing text
files (these are instructions to the text-to-postscript conversion
process).
o The Extra GS options box is not only a place for adding options for
ghostscript, but also for the PPA drivers. Leave this box empty
unless you know what you are doing. As explained in the text in
the Driver Description box (you did read it, didn't you ?), the
entry should be in the format:
gs_options PPA ppa_options
Anything before the "PPA" is interpreted as a gs option, anything
after it is interpreted as a ppa option. You can learn about pnm2ppa
options by typing either "man pnm2ppa" or "pnm2ppa --help" at a com-
mand line (hopefully, these two sources of information will be consis-
tent with each other!);
When you have made your choices, click on Ok to save your selections
and close the "Configure Filter" screen, and then click on OK to
close the "Edit Local Printer Entry" screen.
You are now back in the "Red Hat Print System Manager" screen;
highlight the printer you just configured, and, in the Tests menu,
choose Print Postscript test page to print a test page using the Red
Hat print filters. If this printed correctly, your print system is
set up to use the PPA printer, just like any of the other printers
that the Red Hat print filters support.
Configuring pnm2ppa.conf and calibrating the printer.
A number of printer parameters are set to reasonable default values
for each of the printer models, but you may wish to "fine tune" or
calibrate your printer. The default values can be overridden by
entries in the configuration files, which by default are
/etc/pnm2ppa.conf and /etc/pbm2ppa.conf. At 600dpi, one pixel is
1/600 inch.
The user-adjustable parameters are:
o verbose 1 and silent 1. These control messages about progress and
errors from pnm2ppa. By default, messages are sent to the system
log /var/log/messages. The verbose 1 keyword send copies to
stderr, the standard error stream to the terminal. The silent 1
keyword silences the stream of messages to the system log.
o The system log messages may be silenced in the default
configuration file; switch off "silent" mode with "silent 0"
for debugging printer problems (or use verbose mode).
o The version keyword can be used to specify the printer model as
710, 712, 720, 722, 820, or 1000. It is not needed if you use the
RedHat printool to configure the printer.
o xoffset and yoffset: the x-offset and y-offset (in pixels) of the
printed image on the page, which should be chosen so the image is
correctly centered on the paper. (These can also be set with the
-x and -y options.) See CALIBRATION.html (or
CALIBRATION.txt) for more information.
o topmargin, bottommargin, leftmargin, rightmargin: the four margins,
which define the distances (in pixels) from the edges of the paper
to the printed region; parts of the image that are outside these
margins will not be printed. (These can also be set with the
-t ,
-b ,
-l , and
-r options.)
o ColOffsX and ColOffsY: the x-offset and y-offset (in pixels)
between the color image produced by the color ink printer head,
and that produced by the black ink printer head. These should be
recalibrated
each time an ink cartridge is replaced. See CALIBRATION.html (or
CALIBRATION.txt) for more information.
o blackshear and colorshear: these are x offsets between right-to-
left and left-to-right sweeps of the print head, one for the black
printing and one for the color printing. These provide sideways
offsets (in pixels) of the right-to-left sweeps, that can be used
to correct "shearing" when printing in modes that use bidirectional
print head sweeps.
o unimode 1 will make unidirectional print sweeps (left-to-right)
the default, instead of bidirectional sweeps. The --uni and --bi
options can control how a particular print run is printed.
Unidirectional printing is only useful (it is slower) if there are
issues of "shearing" in high quality image printing.
o blackness : this takes values 0,1,2,3 or 4 drops of black ink per
pixel, and controls black ink density in black-and-white and "text-
like" black regions in color printing. At present, this has no
effect on printing with the black ink cartridge disabled, or on
black regions identified as "image-like". (This can also be set
with the -B option, where n is the number of drops.)
o GammaR, GammaG, and GammaB: the are the three "gamma" parameters
that define the standard color correction curves for red, green,
and blue. Changing these will affect how colors appear
(decreasing any Gamma enhaces the corresponding color). The Gamma
values are specified as decimal numbers, with Gamma = 1.0
corresponding to no color correction.
o Gamma values can also be specified using integer numbers
RedGammaIdx, GreenGammaIdx, BlueGammaIdx; These are determined by a
procedure discussed in COLOR.html or COLOR.txt, which involves
printing a test page. The papersize keyword specifies the paper
size used for this testpage, because it is produced by pnm2ppa
without the input that usually specifies the page size.
o The keywords black_ink 0, color_ink 0, cyan_ink 0, magenta_ink 0,
and yellow_ink 0 can be used to switch of the various inks; this
can be useful in troubleshooting and debugging pnm2ppa.
Use test_ppa to print various test pages or calibration patterns to
adjust the offsets.
If you wish to specify these parameters using the command-line options
described above, in Red Hat 6.2/7.0 some of them can be entered in the
"extra GS options" box using the Print System Manager (printtool), as
described above. In Red Hat 7.1 and later, all command-line options
can be set using the new printconf-gui utility.
Utility programs for the printer.
HP's Windows software provides a utility program that sends PPA
commands to tell the printer to perform tasks like cleaning the
printheads, etc.
On Red Hat Linux, You can use test_ppa (which acts as a command-line
front-end for calibrate_ppa) to print head-cleaning patterns.
There is a graphical (gtk-based) tool written by Javier Sedano for
creating a pnm2ppa.conf file and acting as a front end to
calibrate_ppa. This is called ppaSet, and a beta version of it can be
found in the same place as the pnm2ppa-1.10 distribution at
http://sourceforge.net/projects/pnm2ppa
There was also at one time a proposal to add support for PPA printers
to the PUP (Printer Utility Program) utility, which is also a project
at http://www.sourceforge.net. However, as of the time of writing, no
PUP support for PPA printers is available.
Troubleshooting
The first thing to do is to look at the messages from pnm2ppa in the
system log to see what is happening, whether pnm2ppa actually received
any input, and if it was valid.
(You may need to enable system log messages in /etc/pnm2ppa.conf,
see above.) Maybe ghostscript failed to convert your postscript file
into PNM format: in that case the system log reports "Fatal Error!
Input image (pnm2ppa) is not a PNM image". (note: when this occured,
older versions of pnm2ppa reported "Input image is not a supported PNM
format" which may have been confusing). This is because the input
received by pnm2ppa was not a valid PNM image, but instead ghostscript
failed to produce any PNM output at all, and its only output was
probably just an error message. This is not a pnm2ppa problem!
Here are suggestions for dealing with other problems that you may
encounter.
o Printing fails in the middle of a print run, perhaps when a figure
embedded in the document is printing (in the latest pnm2ppa
versions, printing finishes normally, but an incomplete document is
printed). The system log reports that read_line could not read
the image, and found EOF (end-of-file). This probably means that
ghostscript's "ppmraw" or "pgmraw" output device started correctly,
but failed for some reason before finishing the image conversion
from postscript to PNM format, usually leaving a core dump. (This
has been seen to happen in ghostscript 5.10 ; upgrading to
ghostscript 5.50 solved the problem.) If you cannot upgrade, try
printing the document in black-and-white using the ghostscript
"pbmraw" output device.
o You printed an image file using a "high quality" printer setting,
but it has visible horizontal lines on it and printing under
Windows(tm) 9x doesn't show this effect (except in "economode").
These are probably "swath boundaries", showing the junction between
different sweeps of the print head. Solution: using unidirectional
printing (PPA option --uni, or unimode 1 in /etc/pnm2ppa.conf)
helps a little. this problem is fixed in the pnm2ppa-1.10 release
o "Flashing light syndrome ". Your printer usually works, but you
have found that some particular documents cause the printer to
fail, and the lights on its panel start flashing rapidly in
sequence. Solution, turn the printer off and back on again.
This is not supposed to happen any more; if it happens
reproducibly, contact the pnm2ppa developers, and offer to make the
offending file available for testing and diagnosis of this problem.
(Don't sent it to the Mailing List unless requested). Bug reports
can be filed at the SourceForge pnm2ppa site.
o You wish to print on envelopes or other non-standard media not
supported by the print filters? Solution: if you can get
Ghostscript (gs) to produce the correct image, and the paper size
is in the range allowed by your printer, you should be able to do
this with a script that bypasses the print filters, as described
earlier in this document.
o Colors look wrong, or do not match what the Windows(tm) 9x driver
produces. Solution: check that your color ink cartridge is not
running out of some ink color; if not, (a) adjust the "gamma"
entries in /etc/pnm2ppa,conf, or (b) install a customized color
calibration file /etc/pnm2ppa.gamma. See the file COLOR.html (or
COLOR.txt) for more information.
Contacting the pnm2ppa project.
Send comments or corrections (about this document or the RPMS) to:
ppa-rpms@users.sourceforge.net
There are three mailing lists, pnm2ppa-announce@lists.sourceforge.net
(announcements), pnm2ppa-users@lists.sourceforge.net (users helping
users) and pnm2ppa-devel@lists.sourceforge.net (developers). You can
subscribe to them, or browse their archives, at
http://sourceforge.net/projects/pnm2ppa. (The older pnm2ppa mailing
lists died with the ListBot service)
To contact the developers, subscribe to ppa.devel and post a message.
There are Public Forums for posting questions and comments at
http://sourceforge.net/projects/pnm2ppa (but whether you get any help
from these, depends on whether anyone is reading them (unlikely!)).
pnm2ppa-1.13/docs/en/INSTALL.SOLARIS 0000644 0000764 0000764 00000001734 07343336252 013456 0000000 0000000 On Solaris systems, you will probably have to install the GNU "libiberty"
library (-liberty) which provides getopt_long for Solaris; get it at
http://sunfreeware.com
(look for the package "libiberty.so" in the list of freeware)
and install it into /usr/local/lib.
The tarball of the package is called "shared-libiberty.tar.gz".
If you use the precompiled library libiberty-i386.so that it supplies for
x86 systems, rename it to libiberty.so when you install it. Otherwise,
build the library from source.
Uncomment the Makefile line adding an entry for -liberty to LDFLAGS.
You may also need to compile with the -D__NO_SYSLOG__ option to suppress
system log messages. See the Makefile.
If "make install" fails, manually copy the pnm2ppa and calibrate_ppa binaries,
the manpage pnp2ppa.1, and the configuration file pnm2ppa.conf
to their appropriate locations.
The "install" command on Solaris does not have the -b (backup) option.
uncomment the Makefile line entry for this. pnm2ppa-1.13/docs/en/INSTALL.SUSE 0000644 0000764 0000764 00000002460 07176353610 013117 0000000 0000000 Installation of pnm2ppa with S.u.S.E. Linux
------------------------------------------------------
1. Installation of program package pnm2ppa
Follow the standard installation instructions in INSTALL and CALIBRATION.
The driver pnm2ppa is installed to /usr/local/bin. The manual page
pnm2ppa.1 is installed in /usr/local/man/man1.
2. To integrate pnm2ppa into the BSD print spooler of the Linux system we
create printer spoolers in /etc/printcap, to print
postscript files in color or black and white, and to print plain ascii files.
See the file README.lpd in the subdirectory "lpd" of the pnm2ppa
distribution. This shows how to set up five printer descriptions:
coloreco (normal quality color,the default);
color (high quality color)
bweco (economy mode black)
bw (high quality black and white)
ascii (for printing text files using enscript)
(Maybe there is a better way, using SUSE's own printing configuration
system; if so please let us know).
3. Now you are ready to print files with
# lpr filename.ps
which is equivalent to:
#lpr -P coloreco filename.ps
or explicitly specify the color and quality mode:
#lpr -P bweco filename.ps
#lpr -P bw filename.ps
#lpr -P coloreco filename.ps
#lpr -P color filename.ps
and for ascii (text) files:
# lpr -P ascii filename
pnm2ppa-1.13/docs/en/LICENSE 0000755 0000764 0000764 00000044000 07132471700 012305 0000000 0000000
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
Copyright (C) 19yy
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.
pnm2ppa-1.13/docs/en/PPA_networking-1.html 0000644 0000764 0000764 00000007145 07275663602 015235 0000000 0000000
Networking HP PPA DeskJet Printers using SAMBA.: Networking HP DeskJet PPA printers with SAMBA Next
Previous
Contents
The HP DeskJet 710/712C, 720/722C, 820Cse/820Cxi and 1000Cse/1000Cxi
printers are
"Winprinters" which are designed only for use with
MS Windows operating systems. HP supplies Windows-only software
that processes the input data into the proprietary and unpublished
PPA ("Printer Performance Architecture") protocol.
HP states that these printers are not supported as networked
printers, but they in fact function correctly as shared (SMB)
printers under MS Windows.
In this document, the Host is the computer to which
the PPA printer is physically connected, and the Clients are
other computers on the network that wish to print documents
on the PPA printer.
In the Windows printing system, separate copies of the HP PPA printer drivers
are installed on each Client, and are run on the Client to produce PPA output
that is sent over the network to be spooled
on the Host to which the printer is attached.
HP's drivers are only supplied for Windows systems. The
independently-produced
pnm2ppa
driver runs on Linux, some other Unix systems, and BeOS.
This document describes various tested strategies for
using pnm2ppa and the
samba
suite of SMB tools to allow the PPA printer to be attached to
a non-Windows host on a (TCP-based) SMB network, or to allow
non-Windows Clients to receive printing services from a Host
on the network.
There are two possible ways to send printer data from a Client to
the printer Host over the network.
as PPA data, created by a driver on the Client.
This is what
happens when using conventional printer sharing on Windows.
as PostScript data, created on the Client, which
is then translated into PPA instructions by
drivers running on the printer Host.
Since PPA data is rather large, the first method involves sending
larger amounts of data over the network, which may be why HP do
not officially support PPA DeskJets as networked printers. It also
requires that PPA drivers are installed on the Client.
The Host to which the printer is attached can thus provide two
classes
of printing services:
PPA printing services: the Host accepts PPA-format
printing jobs created on the Clients either with HP's native PPA drivers
(Windows Clients) or pnm2ppa (Unix/Linux/BeOS Clients);
PostScript printing services: the Host accepts PostScript-format
printing jobs created on any postscript-capable Client, and converts
them to PPA format using either HP's native PPA drivers
(Windows Host) or pnm2ppa (Unix/Linux/BeOS Host);
It is useful to set up the Host to offer both types of service,
sharing a common spooling system.
Next
Previous
Contents
pnm2ppa-1.13/docs/en/PPA_networking-2.html 0000644 0000764 0000764 00000014300 07275663602 015225 0000000 0000000
Networking HP PPA DeskJet Printers using SAMBA.: Configuring the Printer Host.NextPreviousContents
It is assumed that pnm2ppa is installed and working
to provide local printing services on the Host, and that
lpr will invoke a full set of print filters, as
(e.g.) in Red Hat 6.2. The PPA printer is installed with
the printer name lp, and
samba is assumed to be installed. General Samba configuration
issues involving security levels, network password, etc, are outside the
scope of this document (see the SMB-HOWTO). You must log in as
root to configure Samba.
Here is a sample entry setting up two public printer shares
in the Host's /etc/smb.conf file.
The printer HP722C-PPA is for printing by a Client that sends
PPA output from pnm2ppa or the HP drivers across
the network, and HP722-PS is for Clients that produce PostScript
output:
[HP722C-PPA]
comment = HP 722C printer on Linux (PPA input)
path = /var/tmp
printer name = lp
writable = yes
public = yes
printable = yes
print command = lpr -l -r -h -P %p %s
[HP722C-PS]
comment = HP 722C printer on Linux (Postscript input)
path = /var/tmp
printer name = lp
writable = yes
public = yes
printable = yes
print command = lpr -r -h -P %p %s
The only differences besides the names are that the print command
for HP722-PPA uses the " -l "
"pass-through" option so print filters are not applied.
The path entry uses /var/tmp because this is (presumably)
a world-readable and -writable area for temporary files.
After editing /etc/smb.conf to include these entries,
save it, and test its syntax with Samba's testparm utility.
Then restart samba
(run "/etc/rc.d/init.d/smb restart" on Red Hat).
The Host is assumed to be a Window 98 system, and the PPA
printer is assumed to be a HP722C installed with the native HP
PPA drivers supplied on HP's installation CD. Some details may vary
on other Windows versions.
First set up a shared printer that can accept PPA input
from both networked Windows Clients, and from
networked non-Windows Clients
that use pnm2ppa.
IMPORTANT!:
A PPA printer attached to a Windows Host shared with a
Client running pnm2ppa has the following limitation:
Bi-Directional communication between the Windows Host and the printer
must be disabled.
If it is not done,
a General Protection Fault will usually occur on
the Windows Host when pnm2ppa sends
output to the
shared printer. (A "Hpfbkg06" error occurs,
and the printer becomes nonfunctional until
the Windows system is rebooted.)
Disabling bi-directional communication appears to be a minor inconvenience:
according to HP, the print quality is unaffected,
but the
"advanced features of the Status Monitor"
will no longer send reminders to align the print cartridges
after a new cartridge is installed, or
send error messages
associated with the ink cartridges
or the banner lever.
You may be able to avoid disabling bi-directional communication
by using an emulated Postscript
printer to serve non-Windows Clients without using pnm2ppa
(see below).
To turn off bi-directional communication between the Windows Host
and the printer, open the Settings/Printers folder,
then right-click on the printer icon, and open the Properties
dialog. Select the Details tab, and click on
Spool Settings, then choose the setting
"Disable bi-directional support for this printer".
If you have any difficulties, try rebooting Windows after the change,
or see HP's support document
http://www.hp.com/cposupport/printers/support_doc/bpd06455.html about disabling bi-directional communication.
To set up the Host to share the printer, right-click on its
icon in the Settings/Printers folder, and select Sharing,
then assign it a Share Name like HP722C-PPA , and enter a Comment
Line like "HP 722C printer on Windows 98 (PPA input)".
You may now also wish to set up an emulated Postscript printer that
accepts Postscript input from the Client,
and prints it using HP's PPA drivers
running on the Host, instead of on the Client.
See the section
Emulating a PostScript printer on a Windows Host
If you have installed and successfully tested the emulated printer,
set it up for sharing on the network.
Right-click on its
icon in the Settings/Printers folder, and select Sharing,
then assign it a Share Name like HP722C-PS, and enter a Comment
Line like "HP 722C printer on Windows 98 (PostScript input)".
The emulated printer will appear like a Postscript printer to
the Clients. If it provides acceptable printing services to
the non-Windows clients, you will not need to connect pnm2ppa
printers to HP722C-PPA, and will be able to re-enable bi-directional
communication between the HP drivers and the printer.
(However, the extra processing involved in the emulation may be
unacceptably slow, or turn out to use too much of the host's CPU)
NextPreviousContents
pnm2ppa-1.13/docs/en/PPA_networking-3.html 0000644 0000764 0000764 00000006630 07275452761 015237 0000000 0000000
Networking HP PPA DeskJet Printers using SAMBA.: Configuring the Printing Clients.NextPreviousContents
Open the Settings/Printers folder, and start the
Add Printer Wizard. Choose to add a Network Printer,
and browse the network to find the Printer Shares you configured on
the host (e.g., HP722C-PPA and HP722C-PS). If they are not visible,
either the Host or the network is not properly configured. Correct
the problem before proceding.
Normally, you will probably want to use
the native Windows HP PPA drivers, so select the printer Share that accepts
PPA input (e.g., HP722C-PPA). If the Host
is a Windows Host, it will provide the drivers over the network,
otherwise you will have to
find the printer in the list of available HP Printer drivers,
or click on Have Disk and install them from HP's installation CD.
You then get a chance to change the name with which the printer will be
known on the Client. Finally, you should choose to print a test page.
You might instead (or also) want to set up printing
services using the Printer Share that accepts Postscript
(e.g., HP722C-PS).
In that case, if the Host is not a Windows Host, choose a
"generic" PostScript printer like the
Apple LaserWriter II NT or the Digital turboPrintServer 20/Net.
If the test page prints sucessfully, you are finished!
First examine the network by opening a terminal window and
using the command
smbclient -L hostname
(where "hostname" should be replaced by the
network name of the Host to which the printer is attached).
This will list
the SMB services provided by that Host.
(Alternatively, your
system may have some graphical front-end to smbclient
that allows you to inspect the network.)
The list should include
the Printer Share(s) you configured on the Host
(e.g., HP722C-PPA and HP722C-PS). If these are
absent, you must first identify and correct the problem.
You must now configure the printer. The details of how to do this
will vary between Linux/Unix distributions, but there will probably
be support for network printing using Samba.
If the Printer Share
you wish to use is intended to accept PPA input
(e.g., HP722C-PPA), configure the Client to use the pnm2ppa
driver.
If it is intended to accept PostScript input
(e.g., HP722C-PS), configure the Client to print to a PostScript printer.
You may wish to configure both types of printers, and experiment
to see which provides the best printing services on your network.
See the SMB-HOWTO documentation for more information.
NextPreviousContents
pnm2ppa-1.13/docs/en/PPA_networking-4.html 0000644 0000764 0000764 00000021154 07431763126 015230 0000000 0000000
Networking HP PPA DeskJet Printers using SAMBA.: Emulating a PostScript printer on a Windows Host.
Next
PreviousContents
If you do not have commercial PostScript emulation software for Windows that
will work with your HP PPA DeskJet
(the author is unaware of any such software that supports PPA printers),
you can use Ghostscript together with HP's native Windows drivers.
From the Ghostscript home page
http://www.cs.wisc.edu/~ghost/
download and install (in this order) the Windows packages of
Ghostscript (PostScript Emulation Software).
GSview (Ghostscript previewer, provides gsprint).
RedMon (printer port redirection utility).
(Install these using their setup.exe
installation tools, and do not manually
set up any configuration files for gsprint
or RedMon.)
You must now follow the detailed instructions below, and
use the Windows "Add Printer Wizard" to add a postscript
printer, and then
configure it to use the gsprint utility that comes with
GSview, and redirect the output to your HP PPA DeskJet using the RedMon utility.
In the following, I assume your printer is a HP DeskJet 722C,
and is installed with its native Windows Drivers as a printer
called "HP DeskJet 720C Series". Change printer
name entries
below as appropriate for your printer model.
The following instructions are tested on Windows 98, and may differ
on other Windows variants.
Open the Settings/Printers folder.
First check that the HP PPA Deskjet is correctly installed,
using HP's native Windows drivers. Right-click on its icon,
and select its Properties dialog. The General
Properties screen will open. This shows the exact name
that the printer was given when it was installed. Make a note of
it, and use the Print Test Page button
to confirm that the
printer is working. (The "Printer name:" line on the
test page will also show the exact name of the HP PPA Deskjet
that you will need to use when configuring the emulated postscript printer
below). When you are done,
click on OK to close the dialog.
Now start the Add Printer "Wizard".
Make the choices:
install a local printer
select a PostScript printer from the
list of printers;
(e.g., one of the Apple LaserWriter models:
the Laserwriter II NT is known to work; Digital
PrintServer models such as the turboPrintServer 20/Net
have also been recommended). This will provide a
suitable postscript driver.
From the list of Available Ports, choose
"FILE: Creates a file on disk"
(you will change this after
the printer is installed)
After the printer has been installed,
right-click on its icon, and rename it to something like,
e.g.,
"Ghostscript+HP722C".
Then right click again and open its Properties dialog.
On the General tab screen,
enter something informative
in the Comment box, such as
" Emulated Postscript printer; output redirected
to a HP722C DeskJet printer" (optional).
Next select the Details tab.
The box "Print using the following driver:"
should show the
Postscript driver you selected (e.g., Apple LaserWriter II NT).
Click on Add Port.
Select other, then Redirected Port, which should be
available if RedMon was correctly installed, and click on
OK to accept these
settings and close the Add Port dialog.
On the Details tab screen,
The box "Print to the following port:"
should now show a
redirected port such as
"RPT1 [Redirected Port]".
Click on
Port Settings.
In the box
"Redirect port to the program:", enter the path to the
gsprint program. (If you accepted the defaults when installing it,
this may be C:\Ghostgum\gsview\gsprint.exe; you may
search for it by clicking on Browse).
In the box "arguments for this program are:"
enter the arguments to be passed to the
gsprint program (there is a document gsprint.htm
with more details of these in the folder containing gsprint.exe).
Suggested arguments are:
-printer "HP DeskJet 720C Series" -color -
Replace "HP DeskJet 720C Series" by the (quoted)
exact name of the HP PPA DeskJet printer that
you made a note of earlier. (If you do not copy this name exactly,
including any capitalization or spaces, things may not work!)
The -color argument is needed to
enable color printing;
(Whether you actually get color printing will depend on the local settings
of the "HP DeskJet 720C Series" printer
that really prints
the document.)
The final
" - " is required: without it,
the output of gsprint will not get redirected to
the printer.
The box "Output" should show
"Program handles output".
In the box "Run", select
"hidden".
The box "Shutdown delay" will say
"300 seconds". Print jobs for which processing by
gsprint takes longer than this will be terminated,
to avoid blocking the printer spool queue. Increase this limit
if necessary.
Now click on OK to close the Port Settings dialog.
Click on Spool Settings, and select
"Disable bi-directional support for this printer",
and click OK.
Finally, again select the General tab, and test the installation by
clicking on "Print a test page". If it works, you are
finished setting up Postscript emulation. Click OK to
exit the Printer Properties dialog.
(If you have problems, first check that you made the correct
entries in the Printer Properties dialogs, especially check that you
did not make any typing errors in the
exact name for the PPA DeskJet printer in thegsprint arguments box, which must correspond exactly
to the "Printer name" given to the HP PPA printer). If the problems
persist, you might get guidance from the
gsprint and RedMon documentation; look
in the folders where these were installed.)
You now have a working emulated
"Postscript printer" that can now be shared over
a network. (The "sharing" options will now be available
if you right-click on the emulated printer's icon.)
This emulated postscript
printer is most useful for providing printing services
to non-Windows
Clients on a samba network,
but can be also be used by Windows
Clients with the following limitations:
Windows Clients will be able to
select Print Settings only for the
visible ("front end") "Postscript printer",
but not for
the hidden ("back end") HP PPA DeskJet printer
that actually
does the printing.
Changes in the local Print Settings of the PPA driver for
the DeskJet printer on the
Host system (but not on Client systems, if it
too is shared) will affect network printing by the
"Postscript printer".
Since the
visible "Postscript printer" falsely
advertises its identity, some of its Print Settings
options seen by users on the Clients may not be valid.
The extra processing on the printer Host
may make printing rather slow compared to native Windows printing.
Next
PreviousContents
pnm2ppa-1.13/docs/en/PPA_networking.html 0000644 0000764 0000764 00000004613 07431763126 015070 0000000 0000000
Networking HP PPA DeskJet Printers using SAMBA.Next
Previous
Contents
v0.12 Feb 10, 2002
This document discusses Networking HP 710C, 720C 820C or 1000C Series
(PPA Protocol) HP DeskJet printers with non-Windows Hosts or Clients,
using SAMBA. Topics include choosing between transmitting PPA or PostScript
across the network, Windows and Linux/Unix Hosts, Windows and Linux/Unix
Clients, and emulating a PostScript printer on Windows.
(Updated for pnm2ppa-1.04 and later.)