1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
|
POSTER(1) POSTER(1)
NAME
poster - Scale and tile a postscript image to print on
multiple pages
SYNOPSIS
poster <options> infile
DESCRIPTION
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:
- Given the poster size, it calculates the required number
of sheets to print on, and from that a scale factor to
fill these sheets optimally with the input image.
- Given a scale factor, it derives the required number of
pages from the input image size, and positions the
scaled image centered on this area.
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 cur
rent 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).
1
POSTER(1) POSTER(1)
OPTIONS
-v Be verbose. Tell about scaling, rotation and number of
pages.
Default is silent operation.
-f Ask manual media feed on the plotting/printing device,
instead of using its standard paper tray.
Default is adhering to the device settings.
-i <box>
Specify the size of the input image.
Default is reading the image size from the `%%Bounding
Box' specification in the input file header.
-m <box>
Specify the desired media size to print on. See below
for <box>.
The default is set at compile time, being A4 in the
standard package.
-p <box>
Specify the poster size. See below for <box>. Since
poster will autonomously choose for rotation, always
specify a `portrait' poster size (i.e. higher then
wide).
If you don't give the -s option, the default poster
size is identical to the media size.
-s <number>
Specify a linear scaling factor to produce the poster.
Together with the input image size and optional mar
gins, this induces an output poster size. So don't
specify both -s and -p.
Default is deriving the scale factor to fit a given
poster size.
-c <box> or -c <number>%
Specify the cut margin. This is the distance between
the cutmarks and the paper edge. If the output is
really tiled on multiple sheets, the cut marks indicate
where to cut the paper for assembly. This margin must
be big enough to cover the non-printable margin which
almost all printers have. For <box> see below.
Default is 5%. Only when you specify identical poster
and media sizes, the default cut margin becomes 0,
effectively removing the cutmarks.
-w <box> or -w <number>%
Specify a white margin around the output image.
In the `ideal' situation (when an input `eps' file
specifies an exact BoundingBox in its header), the out
put image will be scaled exactly to the edges of the
resulting poster (minus cut margin). If you desire a
certain margin to remain around the picture after
2
POSTER(1) POSTER(1)
poster assembly, you can specify this with `-w'.
(This option is actually redundant, since you can
obtain the same result using -s or -i. However some
might find this more convenient.)
Default is 0.
-o <outputfile>
Specify the name of the file to write the output into.
(Only added for those poor people who cannot specify
output redirection from their command line due to a
silly OS.)
Default is writing to standard output.
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 specifica
tion 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 pro
gram, 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'.
EXAMPLES
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
3
POSTER(1) POSTER(1)
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
PROBLEMS & QUESTIONS
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 reso
lution 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 giv
ing 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 scal
ing 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'
4
POSTER(1) POSTER(1)
option with as argument the papersize on which the origi
nal document was formatted (such as `-iA4'). Alterna
tively specify a smaller scale factor (with -s) or an
explicit new margin (with -w).
POSTER ASSEMBLY
Our preferred method for the assembly of a poster from
multiple sheets is as follows:
- Arrange the sheets in the proper order on a large table
or on the floor.
- Remove from all sheets, except from those in the left
most column or bottom row, their left and bottom cutmar
gin.
- In left-to-right and bottom-to-top order, glue the right
(and top) cutmargin and stick the right (and upper)
neighbouring page on top of that.
- Turn the glued-together poster face bottom, and put
adhesive tape on the sheet edges (on the backside of the
poster) for more strength.
- Remove the remaining cutmargin around the poster.
DEVICE SETTINGS
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:
- the media size.
This is required for all printers I know to get correct
behaviour on different media/picture sizes.
- duplexing off.
Some printers will otherwise perform double-side print
ing by default. Clearly that is not what you want to
print a poster.
- manual media feed.
This is given only when poster was executed with the
`-f' command line option. This is a convenient feature
if you want to print your job on different media than
normally installed in the paper tray, and you are sub
mitting your job through a multi-user networking and
spooling environment.
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
5
POSTER(1) POSTER(1)
HP300XL and HP650C.
The settings thus passed in the postscript file, will
affect the device for this job only.
DSC CONFORMANCE
Poster will generate its own DSC header and other DSC
lines in the output file, according the `Document Struc
turing 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 out
put, are stripped from all lines starting with a `%',
since they tend to disturb our `ghostview' previewer and
take useless space anyhow.
SEE ALSO
ghostview(1)
CONTRIBUTED BY
Jos van Eijndhoven (email: J.T.J.v.Eijndhoven@ele.tue.nl)
Design Automation Section (http://www.ics.ele.tue.nl)
Dept. of Elec. Eng.
Eindhoven Univ of Technology
The Netherlands
24 August, 1995
6
|