xpr - print an X window dump
xpr [ -device devtype ] [ -scale scale ] [
-height inches ] [ -width inches ] [ -left
inches ] [ -top inches ] [ -header string ]
[ -trailer string ] [ -landscape ] [ -portrait ] [
-plane number ] [ -gray ] [ -rv ] [
-compact ] [ -output filename ] [ -append
filename ] [ -noff ] [ -split n ] [ -psfig
] [ -density dpi ] [ -cutoff level ] [
-noposition ] [ -gamma correction ] [ -render
algorithm ] [ -slide ] [ -version ] [ filename ]
xpr takes as input a window dump file produced by xwd(1) and
formats it for output on PostScript printers, the Digital LN03 or LA100, the
IBM PP3812 page printer, the HP LaserJet (or other PCL printers), or the HP
PaintJet. If no file argument is given, the standard input is used. By
default, xpr prints the largest possible representation of the window
on the output page. Options allow the user to add headers and trailers,
specify margins, adjust the scale and orientation, and append multiple window
dumps to a single output file. Output is to standard output unless
-output is specified.
- -device devtype
- Specifies the device on which the file will be printed. Currently
- Digital LA100
- HP LaserJet series and other monochrome PCL devices such as ThinkJet,
QuietJet, RuggedWriter, HP2560 series, and HP2930 series printers
- Digital LN03
- HP PaintJet (color mode)
- HP HP PaintJet XL Color Graphics Printer (color mode)
- IBM PP3812
- PostScript printer
The current version of xpr can generally print out on the LN03 most X
windows that are not larger than two-thirds of the screen. For example, it
will be able to print out a large Emacs window, but it will usually fail when
trying to print out the entire screen. The LN03 has memory limitations that
can cause it to incorrectly print very large or complex windows. The two most
common errors encountered are ``band too complex'' and ``page memory
exceeded.'' In the first case, a window may have a particular six pixel row
that contains too many changes (from black to white to black). This will cause
the printer to drop part of the line and possibly parts of the rest of the
page. The printer will flash the number `1' on its front panel when this
problem occurs. A possible solution to this problem is to increase the scale
of the picture, or to split the picture onto two or more pages. The second
problem, ``page memory exceeded,'' will occur if the picture contains too much
black, or if the picture contains complex half-tones such as the background
color of a display. When this problem occurs the printer will automatically
split the picture into two or more pages. It may flash the number `5' on its
from panel. There is no easy solution to this problem. It will probably be
necessary to either cut and paste, or to rework the application to produce a
less complex picture.
- The default is PostScript. -device lw (LaserWriter) is equivalent
to -device ps and is provided only for backwards compatibility.
- -scale scale
- Affects the size of the window on the page. The PostScript, LN03, and HP
printers are able to translate each bit in a window pixel map into a grid
of a specified size. For example each bit might translate into a 3x3 grid.
This would be specified by -scale 3. By default a window is
printed with the largest scale that will fit onto the page for the
- -height inches
- Specifies the maximum height of the page.
- -width inches
- Specifies the maximum width of the page.
- -left inches
- Specifies the left margin in inches. Fractions are allowed. By default the
window is centered in the page.
- -top inches
- Specifies the top margin for the picture in inches. Fractions are
- -header string
- Specifies a header string to be printed above the window.
- -trailer string
- Specifies a trailer string to be printed below the window.
- Forces the window to printed in landscape mode. By default a window is
printed such that its longest side follows the long side of the
- -plane number
- Specifies which bit plane to use in an image. The default is to use the
entire image and map values into black and white based on color
- -gray 2 | 3 | 4
- Uses a simple 2x2, 3x3, or 4x4 gray scale conversion on a color image,
rather than mapping to strictly black and white. This doubles, triples, or
quadruples the effective width and height of the image.
- Forces the window to be printed in portrait mode. By default a window is
printed such that its longest side follows the long side of the
- Forces the window to be printed in reverse video.
- Uses simple run-length encoding for compact representation of windows with
lots of white pixels.
- -output filename
- Specifies an output file name. If this option is not specified, standard
output is used.
- -append filename
- Specifies a filename previously produced by xpr to which the window
is to be appended.
- When specified in conjunction with -append, the window will appear
on the same page as the previous window.
- -split n
- This option allows the user to split a window onto several pages. This
might be necessary for very large windows that would otherwise cause the
printer to overload and print the page in an obscure manner.
- Suppress translation of the PostScript picture to the center of the
- -density dpi
- Indicates what dot-per-inch density should be used by the HP printer.
- -cutoff level
- Changes the intensity level where colors are mapped to either black or
white for monochrome output on a LaserJet printer. The level is
expressed as percentage of full brightness. Fractions are allowed.
- This option causes header, trailer, and image positioning command
generation to be bypassed for LaserJet, PaintJet and PaintJet XL
- -gamma correction
- This changes the intensity of the colors printed by PaintJet XL printer.
The correction is a floating point value in the range 0.00 to 3.00.
Consult the operator's manual to determine the correct value for the
- -render algorithm
- This allows PaintJet XL printer to render the image with the best quality
versus performance tradeoff. Consult the operator's manual to determine
which algorithms are available.
- This option allows overhead transparencies to be printed using the
PaintJet and PaintJet XL printers.
- This option prints the program version information and exits.
There are several limitations on the LA100 support: the picture
will always be printed in portrait mode, there is no scaling, and the aspect
ratio will be slightly off.
Support for PostScript output currently cannot handle the
-append, -noff or -split options.
The -compact option is only supported for PostScript
output. It compresses white space but not black space, so it is not useful
for reverse-video windows.
For color images, should map directly to PostScript image
If no -density is specified on the command line 300 dots per inch will be
assumed for ljet and 90 dots per inch for pjet. Allowable
density values for a LaserJet printer are 300, 150, 100, and 75 dots
per inch. Consult the operator's manual to determine densities supported by
If no -scale is specified the image will be expanded to fit
the printable page area.
The default printable page area is 8x10.5 inches. Other paper
sizes can be accommodated using the -height and -width
Note that a 1024x768 image fits the default printable area when
processed at 100 dpi with scale=1, the same image can also be printed using
300 dpi with scale=3 but will require considerably more data be transferred
to the printer.
xpr may be tailored for use with monochrome PCL printers
other than the LaserJet. To print on a ThinkJet (HP2225A) xpr could
be invoked as:
xpr -density 96 -width 6.667 filename
or for black-and-white output to a PaintJet:
xpr -density 180 filename
The monochrome intensity of a pixel is computed as 0.30*R + 0.59*G
+ 0.11*B. If a pixel's computed intensity is less than the -cutoff
level it will print as white. This maps light-on-dark display images to
black-on-white hardcopy. The default cutoff intensity is 50% of full
brightness. Example: specifying -cutoff 87.5 moves the white/black
intensity point to 87.5% of full brightness.
A LaserJet printer must be configured with sufficient memory to
handle the image. For a full page at 300 dots per inch approximately 2MB of
printer memory is required.
Color images are produced on the PaintJet at 90 dots per inch. The
PaintJet is limited to sixteen colors from its 330 color palette on each
horizontal print line. xpr will issue a warning message if more than
sixteen colors are encountered on a line. xpr will program the
PaintJet for the first sixteen colors encountered on each line and use the
nearest matching programmed value for other colors present on the line.
Specifying the -rv, reverse video, option for the PaintJet
will cause black and white to be interchanged on the output image. No other
colors are changed.
Multiplane images must be recorded by xwd in ZPixmap
format. Single plane (monochrome) images may be in either XYPixmap or
Some PCL printers do not recognize image positioning commands.
Output for these printers will not be centered on the page and header and
trailer strings may not appear where expected.
The -gamma and -render options are supported only on
the PaintJet XL printers.
The -slide option is not supported for LaserJet
The -split option is not supported for HP printers.
The -gray option is not supported for HP or IBM printers.
Michael R. Gretzinger, MIT Project Athena, Jose Capo, MIT Project Athena (PP3812
support), Marvin Solomon, University of Wisconsin, Bob Scheifler, MIT, Angela
Bock and E. Mike Durbin, Rich Inc. (grayscale), Larry Rupp, HP (HP printer
Copyright 1986, Marvin Solomon and the University of Wisconsin.
Copyright 1988, Hewlett Packard Company.
See X(7) for a full statement of rights and permissions.