Provided by: poster_20050907-1_amd64 bug


       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

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


       -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

       -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',
       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% >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 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 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:

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


       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.


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

       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.


       ghostview(1), papersize(5)


       Jos van Eijndhoven (email:
       Design Automation Section (
       Dept. of Elec. Eng.
       Eindhoven Univ of Technology
       The Netherlands
       24 August, 1995