Man Linux: Main Page and Category List

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

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  ‘%%BoundingBox’
          specification in the input file header.

       -m <box>
          Specify the desired media size to print on. See below for <box>.
          The default is obtained from the PAPERCONF environment variable.  If
          it  is  not  set,  it  is  read  from  the file whose name is in the
          PAPERSIZE environment variable.  If that too is not set, the default
          is  read  from the file /etc/papersize.  See papersize(5) for a full
          description of the format of the config file.

       -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  margins,  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 output 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
          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.

       -P <pagespec>
          Specify  which pages of the poster to print. It consists of a comma-
          separated list of single pages or page ranges (using the dash).  The
          order  in  which page number appears determines the final page order
          in the result PostScript file. Page numbering starts at 1, from left
          to right and bottom-up.
          Examples: 1-2 or 1,3-4,7

       -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 specification in the <box>.
       In general:
            <box> = [<multiplier>][<offset>]<unit>
       with multiplier 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’.

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

       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 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 carelessly  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 impractical 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 doesnt 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).

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 leftmost  column  or
         bottom row, their left and bottom cutmargin.

       - 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 printing 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  submitting  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 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 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.

SEE ALSO

       ghostview(1), papersize(5)

CONTRIBUTED BY

       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