poster - Scale and tile a postscript image to print on multiple pages
poster <options> infile
Poster can be used to create a large poster by building it from multiple pages and/or printing it on large media. It expects as input a generic (encapsulated) postscript file, normally printing on a single page. The output is again a postscript file, maybe containing multiple pages together building the poster. The output pages bear cutmarks and have slightly overlapping images for easier assembling. The input picture will be scaled to obtain the desired size.
The program uses a brute-force method: it copies the entire input file for each output page, hence the output file can be very large. Since the program does not really bother about the input file contents, it clearly works for both black-and-white and color postscript.
To control its operation, you need to specify either the size of the desired poster or a scale factor for the image:
Its input file should best be a real `Encapsulated
Postscript' file (often denoted with the extension .eps or
.epsf). Such files can be generated from about all current
drawing applications, and text processors like Word,
Interleaf and Framemaker.
However poster tries to behave properly also on more
relaxed, general postscript files containing a single page
definition. Proper operation is obtained for instance on
pages generated by (La)TeX and (g)troff.
The media to print on can be selected independently from the input image size and/or the poster size. Poster will determine by itself whether it is beneficial to rotate the output image on the media.
To preview the output results of poster and/or to (re-)print individual output pages, you should use a postscript previewer like ghostview(1) .
-v Be verbose. Tell about scaling, rotation and number of
pages.
Default is silent operation.
The <box> mentioned above is a specification of horizontal
and vertical size. Only in combination with the `-i'
option, the program also understands the offset
specification in the <box>.
In general:
<box> = [<multiplier>][<offset>]<unit>
with multipier and offset being specified optionally.
<multiplier> = <number>*<number>
<offset> = +<number>,<number>
<unit> = <medianame> or <distancename>
Many international media names are recognised by the
program, in upper and lower case, and can be shortened to
their first few characters, as long as unique. For instance
`A0', `Let'.
Distance names are like `cm', `i', `ft'.
The following command prints an A4 input file on 8 A3 pages,
forming an A0 poster:
poster -v -iA4 -mA3 -pA0 infile >outfile
The next command prints an eps input image on a poster of
3x3 Letter pages:
poster -v -mLet -p3x3Let image.eps > outfile
The next command enlarges an eps input image to print on a large-media A0 capable device, maintaining 2 inch margins: poster -v -mA0 -w2x2i image.eps > outfile
Enlarge a postscript image exactly 4 times, print on the
default A4 media, and let poster determine the number of
pages required:
poster -v -s4 image.eps > outfile
Scale a postscript image to a poster of about 1 square meter, printing on `Legal' media, maintaining a 10% of `Legal' size as white margin around the poster. poster -v -mLegal -p1x1m -w10% infile.ps >outfile
I get a blurry image and/or interference patterns If your input file contains -or consists of- pixel images (as opposed to just vector data which is essentially resolution independent), you might have this problem. Such pixel images are normally made to fit well to standard 300 (or 600) dpi devices. Scaling such a picture with an uncarefully chosen factor, can easily lead to hazy edges and interference patterns on the output. The solution is to provide poster with an exact scaling factor (with the -s option), chosen as an integer. If integer scaling is unpractical for your purpose, choose a fractional number made from a small integer denominator (2, 3, 4).
Can I select only a small part of a given input picture?
Yes, for this purpose you can define both the size (width
and height) and offset (from left and bottom) of a window on
the input image. Specify these numbers as argument to a `i'
command line option.
One way to obtain such numbers is previewing the original
image with ghostview, and observing the coordinate numbers
which it continually displays. These numbers are in
postscript units (points), named by poster as just `p'.
Poster doesn't seem to work properly, output pages are empty The major cause for poster not to work correctly, is giving it postscript files which don't conform to proper `eps' behaviour. Try whether your application (or printer driver) cannot generate real `encapsulated postscript'.
If I ask for a 50x50cm poster, it always generates something
bigger
Yes, probably. When specifying a desired output size with
the `-p' option, poster first determines an array of sheets
to cover such an area. Then it determines a scale factor
for the picture to fill these sheets upto their edge. As
result your requested size is used as rough guess only. If
you want an exact output size, specify the scaling factor
yourself with the `-s' option (and omit the `-p').
I want to keep the white space around the poster as in my
original
Poster will as default use the input image bounding box, and
scale/translate that to the edges of your poster. If the
program which generated your input file specifies an exact
and tight %%BoundingBox, you will indeed loose your white
margin. To keep the original margin, specify a `-i' option
with as argument the papersize on which the original
document was formatted (such as `-iA4'). Alternatively
specify a smaller scale factor (with -s) or an explicit new
margin (with -w).
Our preferred method for the assembly of a poster from multiple sheets is as follows:
For postscript level-2 capable printers/plotters, which is about all modern postscript devices today, poster will send device settings in its output file. This consists of a `setpagedevice' call, setting:
These settings cause proper device behaviour, without the need to manually interact with the printer settings, and has been here locally tested to work on devices like the HP300XL and HP650C.
The settings thus passed in the postscript file, will affect the device for this job only.
Poster will generate its own DSC header and other DSC lines in the output file, according the `Document Structuring Conventions - version 3.0', as written down in the `Postscript Language Reference Manual, 2nd ed.' from Adobe Systems Inc, Addison Wesley Publ comp., 1990.
It will copy any `%%Document...' line from the input file DSC header to its own header output. This is used here in particular for required nonresident fonts.
However the copy(s) of the input file included in the output, are stripped from all lines starting with a `%', since they tend to disturb our `ghostview' previewer and take useless space anyhow.
Jos van Eijndhoven (email: J.T.J.v.Eijndhoven@ele.tue.nl)
Design Automation Section (http://www.es.ele.tue.nl)
Dept. of Elec. Eng.
Eindhoven Univ of Technology
The Netherlands
24 August, 1995