Provided by: gmt-manpages_3.4.4-1_all bug

NAME

       pslib v3.2 - A PostScript based plotting library

DESCRIPTION

       pslib was created to make the generation of PostScript page description code easier. It is a library that
       contains a series of tools that can be used to create plots. The resulting PostScript code is ASCII  text
       and  can be edited using any text editor. Thus, it is fairly easy to modify a plot file even after it has
       been created, e.g., to change text strings, set new  gray  shades  or  colors,  experiment  with  various
       penwidths  etc.   pslib is written in C but now includes FORTRAN bindings (thanks to John Goff, WHOI) and
       can therefore be called from both C and FORTRAN programs.  To  use  this  library,  you  must  link  your
       plotting program with pslib.a. pslib is the core of the GMT SYSTEM and XY graphics programs. pslib output
       conforms to the Adobe Encapsulated PostScript File Specification Version 3.0 (EPSL), and may be  used  as
       EPS files and inserted into, say, a Word document on a Mac. See Appendix F in the Technical Reference for
       detailed instructions.

       Before any pslib calls can be issued, the plotting system must be initialized. This is  done  by  calling
       ps_plotinit,  which  defines macros, sets up the plot-coordinate system, scales, and [optionally] opens a
       file where all the PostScript code will be written. Normally, the plot code is  written  to  stdout.  The
       measure  unit for sizes and positions can be set to be centimeter, inch, or m. When all plotting is done,
       you must terminate the plotting system by calling ps_plotend.

       pslib uses the direct color model where red, green, and blue are given separately, each must  be  in  the
       range  from 0-255. If red < 0 then no fill operation takes place.  Most plot-items can be plotted with or
       without outlines. If outline is desired (i.e., set to 1), it will be drawn using  the  current  linewidth
       and  pattern. pslib uses highly optimized macro substitutions and scales the coordinates depending on the
       resolution of the hardcopy device so that the output file is kept as compact as possible.

       A wide variety of output  devices  that  support  PostScript  exist,  including  laserwriters  (color  or
       monochrome)  and  workstations running PostScript based window systems like SUNs OpenWindows. xnews (part
       of OpenWindows) or ghostscript (public domain) can be  used  to  create  rasterfiles  at  a  user-defined
       resolution  (DPI),  making it possible to render PostScript on a Versatec and other non-PostScript raster
       devices. Regular SUN rasterfiles created under NeWS from PostScript files can be sent  to  a  variety  of
       color hardcopy units. Check the devices available on your network.

FUNCTION CALLS

       The  following  is  a  list  of  available  functions  and  a  short description of what they do and what
       parameters they expect. All floating point variables are expected to be double (i.e., 8  bytes),  whereas
       all  integers  are assumed to be 4 bytes long. All plotting functions are declared as functions returning
       an int. Currently, the return value is undefined.

              void ps_arc (x, y, radius, angle1, angle2, status)
              double x, y, radius, angle1, angle2;
              int status;
                 Draws a circular arc centered on (x,y) from angle angle1 to angle2.  Angles must  be  given  in
                 decimal  degrees. If angle1 > angle2, a negative arc is drawn. status is a value from 0 through
                 3. 1 means set new anchor point, 2 means stroke the circle, 3 means both, 0 means none  of  the
                 above.

              void ps_axis (xpos, ypos, length, startval, stopval, tickval, label, anotpointsize, side)
              double xpos, ypos, length, startval, stopval, tickval;
              int anotpointsize, side;
              char *label;
                 Plots  an  axis with tickmarks, annotation, and label. xpos, ypos, and length are in inches (or
                 cm or meters), anotpointsize in points (72 points = 1 inch), else data units are used. side can
                 be  0,  1,  2,  or  3,  which selects lower x-axis, right y-axis, upper x-axis, or left y-axis,
                 respectively. labelpointsize = 1.5 * anotpointsize.  A negative tickval will reverse the  sense
                 of positive direction, e.g., to have the y-axis be positive down.

              void ps_circle (xcenter, ycenter, diameter, rgb, outline)
              double xcenter, ycenter, diameter;
              int rgb[3], outline;
                 Plots  a  circle  and  fills  it with the specified color. If outline == 1, the outline will be
                 drawn using current pen-width and -pattern.

              void ps_clipoff ()
                 Resets the clip path to what it was before the last call to clipon.

              void ps_clipon (xarray, yarray, npoints, rgb, flag)
              double xarray[], yarray[];
              int npoints, rgb[3], flag;
                 Sets up a user-definable clip path.  Plotting  outside  this  polygon  will  be  clipped  until
                 ps_clipoff  is  called.  If red >= 0 the inside of the path is filled with the specified color.
                 flag is used to create complex clip paths consisting of several disconnected regions, and takes
                 on  values  0-3.  flag  = 1 means this is the first path in a multi-segment clip path. flag = 2
                 means this is the last segment. Thus, for a single path, flag = 3.

              void ps_colorimage (xpos, ypos, xlength, ylength, buffer, nx, ny)
              double xpos, ypos, xlength, ylength;
              unsigned char buffer[];
              int nx, ny;
                 Plots a 24-bit true color image using rgb colors. Similar to ps_image except bits is  fixed  to
                 be  8.  The rgb triplets are stored in buffer as rgbrgbrgb...  This functions sets up a call to
                 the PostScript colorimage operator which is not implemented in all drivers.

              void ps_colortiles (x0, y0, xlength, ylength, buffer, nx, ny)
              double x0, y0, xlength, ylength;
              int nx, ny;
              unsigned char buffer[];
                 Plots a true color image based on individual color tiles. x0, y0 is the location of  the  lower
                 left  corner  of  the  image  in  inches.  xlength, ylength is the image size in inches. buffer
                 contains rgb triplets stored as rgbrgbrgb... nx, ny is the image size in pixels.

              void ps_command (text)
              char *text;
                 Writes a raw PostScript command to the PostScript output file, e.g. "1 setlinejoin".

              void ps_comment (text)
              char *text;
                 Writes a comment (text) to the PostScript output file, e.g. "Start of graph 2".

              void ps_cross (xcenter, ycenter, diameter)
              double xcenter, ycenter, diameter;
                 Plots a cross at the specified point using current pen-width and -pattern that  fits  inside  a
                 circle of given diameter.

              void ps_diamond (xcenter, ycenter, diameter, rgb, outline)
              double xcenter, ycenter, diameter;
              int rgb[3], outline;
                 Plots  a  diamond  and  fills it with the specified color. If outline == 1, the outline will be
                 drawn using current pen-width and -pattern.  The symbol will  fit  inside  a  circle  of  given
                 diameter.

              void ps_ellipse (xcenter, ycenter, angle, major, minor, rgb, outline)
              double xcenter, ycenter, angle, major, minor;
              int rgb[3], outline;
                 Plots  a  ellipse  with  its  major  semiaxis  rotated  by  angle degrees and fills it with the
                 specified color. If outline == 1, the  outline  will  be  drawn  using  current  pen-width  and
                 -pattern.

              void ps_flush ()
                 Flushes the output buffer.

              void ps_hexagon (xcenter, ycenter, diameter, rgb, outline)
              double xcenter, ycenter, diameter;
              int rgb[3], outline;
                 Plots  a  hexagon  and  fills it with the specified color. If outline == 1, the outline will be
                 drawn using current pen-width and -pattern.  The symbol will  fit  inside  a  circle  of  given
                 diameter.

              void ps_image (xpos, ypos, xlength, ylength, buffer, nx, ny, bits)
              double xpos, ypos, xlength, ylength;
              unsigned char buffer[];
              int nx, ny, bits;
                 Plots  a  bit-mapped image using grayshades. Specify position of lower left corner and size (in
                 inches) of image. buffer is an unsigned character array with gray shade values (0 - 255)  where
                 0  is  black,  255  is white. bits is number of bits pr pixel (8, 4, or 1). nx,ny refers to the
                 number of pixels in image. The rowlength of buffer  must  be  an  integral  number  of  8/bits.
                 buffer[0] is upper left corner. E.g. if bits = 4, then buffer[j]/16 gives shade for pixel[2j-1]
                 and buffer[j]%16 (mod 16) gives shade for pixel[2j].  buffer  values  are  stored  as  columns,
                 starting  at  the lower left corner and ending at the upper right corner. See the Adobe Systems
                 PostScript Reference Manual for more details.

              void ps_imagefill (x, y, n, image, imagefile, invert, imagedpi, outline, template, r_rgb, b_rgb)
              double x[], y[], x0, y0;
              int n, image, invert, imagedpi, outline, template, f_rgb[3], b_rgb[3];
              char imagefile;
                 Similar to ps_polygon, but fills the area  with  an  image  pattern  rather  than  a  color  or
                 grayshade.  x  and y hold the arrays of n points. 90 predefined patterns are available (See GMT
                 Appendix E). image gives the image number (1-90). If set to 0, imagefile must be  the  name  to
                 the  user's  image,  which  must be stored as a' SUN 1-, 8-, or 24-bit rasterfile. 1-bit images
                 only: (i) If invert is TRUE (1), the black and white pixels are interchanged  before  plotting.
                 (ii)  If  template  is TRUE (1), the set pixels are colored using the RGB combination in f_rgb,
                 while the unset are painted with b_rgb. The unit size of the image is controlled  by  imagedpi.
                 If  set to zero, the image is plotted at the device resolution. If outline is TRUE, the current
                 penwidth is used to draw the polygon outline.

              void ps_imagemask (xpos, ypos, xlength, ylength, buffer, nx, ny, polarity, rgb)
              double xpos, ypos, xlength, ylength;
              unsigned char buffer[];
              int nx, ny, polarity, rgb[3];
                 Plots a transparent 1-bit image mask using the given rgb color. Specify position of lower  left
                 corner  and  size (in inches) of image. buffer is an unsigned character array with 8 pixels per
                 byte. nx,ny refers to the number of pixels in  image.  The  rowlength  of  buffer  must  be  an
                 integral  number  of  8.  buffer[0]  is upper left corner. buffer values are stored as columns,
                 starting at the lower left corner and ending at the upper right corner. If polarity is  0  then
                 the  bits that are 0 are painted with the rgb color, else the bits that are 1 are colored.  See
                 the Adobe Systems PostScript Reference Manual for more details.

              void ps_itriangle (xcenter, ycenter, diameter, rgb, outline)
              double xcenter, ycenter, diameter;
              int rgb[3], outline;
                 Plots an inverted and fills it with the specified color. If outline == 1, the outline  will  be
                 drawn  using  current  pen-width  and  -pattern.   The symbol will fit inside a circle of given
                 diameter.

              void ps_line (xarray, yarray, npoints, type, close, split)
              double xarray[], yarray[];
              int npoints, type, close, split;
                 Draw a continuous line from the positions in the x-y arrays. If close == 1, the first and  last
                 point will automatically be closed by the PostScript driver.  If this is the first segment in a
                 multi-segment path, set type == 1. To end the segments and have the line(s) drawn, set type  ==
                 2.  Thus,  for  a single segment, type must be 3. The line is drawn using the current penwidth.
                 Only if split is TRUE may ps_line use multiple strokes to  draw  lines  longer  that  MAX_PATH.
                 ps_polygon will call ps_line with split = FALSE since the path must be continuous.  If split is
                 FALSE and the pathlength exceeds MAX_PATH a warning will be issued.

              unsigned char *ps_loadraster (fp, header, invert, monochrome, template, f_rgb, b_rgb)
              FILE *fp;
              struct rasterfile *header;
              BOOLEAN invert, monochrome, template;
              int f_rgb[], b_rgb[];
                 Reads the image contents of the Sun rasterfile pointed to by  the  open  filepointer  fp.   The
                 header  must first be obtained with ps_read_rasheader. If invert is TRUE then 1-bit images will
                 be bit-reversed. If monochrome is TRUE then color images are converted to grayimages using  the
                 TV  YIQ translation. If template is TRUE then 1-bit images will be colorized using the for- and
                 background colors provided in f_rgb and b_rgb. The routine can handle 1-, 8-,  24-,  or  32-bit
                 files in old, standard, run-length encoded, or RGB-style Sun format.

              void ps_patch (xarray, yarray, npoints, rgb, outline)
              double xarray[], yarray[];
              int npoints, rgb[3], outline;
                 Identical to ps_polygon except polygon must be < 20 points long and there will be no attempt to
                 shorten the path  by  discarding  unnecessary  intermediate  points  along  straight  segments.
                 Primarily used when painting large number of small polygons and not waste output space.

              void ps_pie (xcenter, ycenter, radius, azimuth1, azimuth2, rgb, outline)
              double xcenter, ycenter, radius, azimuth1, azimuth2;
              int rgb[3], outline;
                 Plots  a  sector of a circle and paints it with the specified RGB combination. If outline == 1,
                 the outline will be drawn using current pen-width and -pattern.

              void ps_plot (xabs, yabs, kpen)
              double xabs, yabs;
              int kpen;
                 Absolute move (kpen=3) or draw (kpen=2), using current linewidth.

              void ps_plotend (last_page)
              int last_page;
                 Terminates the plotting sequence and closes plot file (if other than stdout). If  last_page  ==
                 1,  then  a  PostScript  showpage  command  is  issued, which initiates the printing process on
                 hardcopy devices.

              void ps_plotinit (plotfile, overlay, mode, xoff, yoff, xscl, yscl, ncopies, dpi,  unit,  pagesize,
              rgb, eps)
              char *plotfile;
              int overlay, mode, ncopies, dpi, unit;
              double xoff, yoff, xscl, yscl;
              int pagesize[2], rgb[3]; struct EPS * eps;
                 Initializes  the  plotting.  If  plotfile  == NULL (or ""), then output is sent to stdout, else
                 output is sent to plotfile. overlay should be 1 only if you plan to append it to some  existing
                 PostScript  file.  mode  contains three flags in the three lowest bits. The lowest bit controls
                 the plot orientation and can be 0 (Landscape) or 1 (Portrait). The next bit, if set to 1,  will
                 re-encode  the fonts to include European accented characters. The third bit controls the format
                 used to write PostScript images: 0 means binary, 1 means hexadecimal. Most printers  needs  the
                 latter  while  some  can  handle  binary  which  are  50% smaller and therefore execute faster.
                 xoff,yoff are used to move the origin from the default  position  in  the  lower  left  corner.
                 xscl,yscl  are used to scale the entire plot (Usually set to 1.0, 1.0). Set ncopies to get more
                 than 1 copy. dpi sets the hardcopy resolution in dots pr units. For optimum  plot  quality  and
                 processing  speed,  choose  dpi  to match the intended plotter resolution. Examples are 300 for
                 most laserwriters, 2540 for Linotype-300, and ~85 for SUN screens. When in doubt, use 300. unit
                 can  be  any  of  0  (CM),  1 (INCH), or 2 (M), telling the plot system what units are used for
                 distance and sizes. Note that, regardless of choice of unit,  dpi  is  still  in  dots-pr-inch.
                 pagesize means the physical width and height of the plotting media in points, (typically 612 by
                 792 for Letter or 595 by 842 for A4 laserwriter plotters. The rgb array holds the color of  the
                 page  (usually  white = 255,255,255).  The EPS structure is defined in the pslib.h include file
                 and contains information that will make up the comments header of a EPS file.  Programmers  who
                 plan  to  call  pslib routines should read the comments in pslib.h first. Note that the FORTRAN
                 binding does not expect this last argument.

              void ps_plotr (xrel, yrel, kpen)
              double xrel, yrel;
              int kpen;
                 Move (kpen = 3) or draw (kpen = 2) relative to current point (see ps_plot).

              void ps_polygon (xarray, yarray, npoints, rgb, outline)
              double xarray[], yarray[];
              int npoints, rgb[3], outline;
                 Creates a colored polygon from the positions in the x-y arrays. Polygon will  automatically  be
                 closed  by  the  PostScript  driver. If outline == 0, no outline is drawn. If outline == 1, the
                 outline is drawn using current penwidth.

              int ps_read_rasheader (fp, header)
              FILE *fp;
              struct rasterfile *header;
                 Using the pointer fp to the open file, return the header structure of the Sun rasterfile.  This
                 call  is  portable as it operates on the byte level. Once the header is returned you may obtain
                 the raster image with ps_loadraster.

              void ps_rect (x1, y1, x2, y2, rgb, outline)
              double x1, y1, x2, y2;
              int red, green, blue, outline;
                 Plots a colored rectangle. (x1,y1) and (x2,y2) are any two corners on a diagonal.   If  outline
                 == 1, the outline will be drawn using current pen-width and -pattern.

              void ps_rotatetrans (x, y, angle)
              double x, y, angle;
                 Rotates the coordinate system by angle degrees, then translates origin to (x,y).

              void ps_setdash (pattern, offset)
              char *pattern;
              int offset;
                 Changes  the  current  dashpattern. The character string pattern is set to the desired pattern.
                 E.g., "4 2" and offset = 1 will plot like:
                      x ---- ---- ----
                 etc, where x is starting point (The x is not plotted). That is,  the  line  is  made  up  of  a
                 repeating pattern of a 4 units long line and a 2 unit long gap, starting 1 unit after the x. To
                 reset to solid line, specify pattern = NULL ("") and offset = 0. Units are in dpi units.

              void ps_setfont (fontnr)
              int fontnr;
                 Changes the current font number to fontnr. The fonts available are: 0 = Helvetica, 1 = H. Bold,
                 2 = H. Oblique, 3 = H. Bold-Oblique, 4 = Times, 5 = T. Bold, 6 = T. Italic, 7 = T. Bold Italic,
                 8 = Courier, 9 = C. Bold, 10 = C Oblique, 11 = C Bold Oblique, 12 = Symbol,  13  =  AvantGarde-
                 Book,  14  =  A.-BookOblique,  15  =  A.-Demi,  16  =  A.-DemiOblique,  17 = Bookman-Demi, 18 =
                 B.-DemiItalic, 19 = B.-Light, 20 = B.-LightItalic, 21 = Helvetica-Narrow, 22 = H-N-Bold,  23  =
                 H-N-Oblique,  24  = H-N-BoldOblique, 25 = NewCenturySchlbk-Roman, 26 = N.-Italic, 27 = N.-Bold,
                 28 = N.-BoldItalic, 29 = Palatino-Roman, 30 = P.-Italic, 31 = P.-Bold, 32 = P.-BoldItalic, 33 =
                 ZapfChancery-MediumItalic. If fontnr is outside this range, it is set to 0.

              void ps_setformat (n_decimals)
              int n_decimals;
                 Sets  number of decimals to be used when writing color or gray values. The default setting of 3
                 gives 1000 choices per red, green, and blue value, which is more than the 255  choices  offered
                 by  most  24-bit  platforms.  Choosing  a  lower value will make the output file smaller at the
                 expense of less color resolution. Still, a value of 2 gives 100 x 100 x 100 = 1 million colors,
                 more  than  most eyes can distinguish. For a setting of 1, you will have 10 nuances per primary
                 color and a total of 1000 unique combinations.

              void ps_setline (linewidth)
              int linewidth;
                 Changes the current linewidth in DPI units. 0  gives  thinnest  line,  but  the  use  of  0  is
                 implementation-dependent (Works fine on most laserwriters).

              void ps_setpaint (rgb)
              int rgb[3];
                 Changes the current RGB setting for pens and text.

              void ps_square (xcenter, ycenter, diameter, rgb, outline)
              double xcenter, ycenter, diameter;
              int rgb[3], outline;
                 Plots  a  square  and  fills  it with the specified color. If outline == 1, the outline will be
                 drawn using current pen-width and -pattern.  The symbol will  fit  inside  a  circle  of  given
                 diameter.

              void ps_star (xcenter, ycenter, diameter, rgb, outline)
              double xcenter, ycenter, diameter;
              int rgb[3], outline;
                 Plots  a star and fills it with the specified color. If outline == 1, the outline will be drawn
                 using current pen-width and -pattern.  The symbol will fit inside a circle of given diameter.

              void ps_text (x, y, pointsize, text, angle, justify, form)
              double x, y, angle;
              char *text;
              int pointsize, justify, form;
                 The text is plotted starting at (x,y), and will make an angle with the  horizontal.  The  point
                 (x,y)  maps onto different points of the textstring by giving various values for justify. It is
                 used as follows:

                           9------------10----------- 11
                            | |
                           5 6 7
                            | |
                           1------------ 2------------ 3
                 The box represents the textstring. E.g., to plot a textstring with its  center  of  gravity  at
                 (x,y),  you must use justify == 6. If justify is negative, then all leading and trailing blanks
                 are stripped before plotting. Certain character  sequences  (flags)  have  special  meaning  to
                 ps_text. @~ toggles between current font and the Mathematical Symbols font.  @%no% sets font to
                 no; @%% resets to starting font.  @- turns subscript on/off, @+ turns  superscript  on/off,  @#
                 turns small caps on/off, and @\ will make a composite character of the following two character.
                 Give fontsize in points (72 points  =  1  inch).  Normally,  the  text  is  typed  using  solid
                 characters.  To draw outline characters, set form == 1.

              void ps_textbox (x, y, pointsize, text, angle, justify, outline, dx, dy, rgb)
              double x, y, angle, dx, dy;
              char *text;
              int pointsize, justify, outline, rgb[3];
                 This  function  is  used  in conjugation with ps_text when a box surrounding the text string is
                 desired. Taking most of the arguments of ps_text, the user must also specify the color  of  the
                 resulting  rectangle,  and  whether  its  outline  should  be drawn. More room between text and
                 rectangle can be obtained by setting dx and dy accordingly.

              void ps_transrotate (x, y, angle)
              double x, y, angle;
                 Translates the origin to (x,y), then rotates the coordinate system by angle degrees.

              void ps_triangle (xcenter, ycenter, diameter, rgb, outline)
              double xcenter, ycenter, diameter;
              int rgb[3], outline;
                 Plots a triangle and paints it with the specified RGB combination. If outline == 1, the outline
                 will  be  drawn  using  current pen-width and -pattern.  The symbol will fit inside a circle of
                 given diameter.

              void ps_vector (xtail, ytail,  xtip,  ytip,  tailwidth,  headlength,  headwidth,  headshape,  rgb,
              outline)
              double xtail, ytail, xtip, ytip, tailwidth, headlength, headwidth, headshape;
              int rgb[3], outline;
                 Draws  a  vector  of  size and appearance as specified by the various parameters. headshape can
                 take on values from 0-1 and specifies how far the intersection point  between  the  base  of  a
                 straight  vector  head  and the vector line is moved toward the tip. 0 gives a triangular head,
                 1.0 gives an arrow shaped head. If outline == 1,  the  outline  will  be  drawn  using  current
                 penwidth.

              void  ps_words (x, y, text, n_words, line_space, par_width, par_just, font, font_size, angle, rgb,
              justify, draw_box,  x_off,  y_off,  x_gap,  y_gap,  boxpen_width,  boxpen_texture,  boxpen_offset,
              boxpen_rgb, vecpen_width, vecpen_texture, vecpen_offset, vecpen_rgb, boxfill_rgb)
              double x, y, line_space, par_width, angle, x_off, y_off, x_gap, y_gap;
              int n_words, font, font_size, justify, draw_box, boxpen_width, boxpen_offset;
              int boxpen_rgb[3], vecpen_width, vecpen_offset, vecpen_rgb[3], boxfill_rgb[3];
              char **text, *boxpen_texture, *vecpen_texture;
                 Typesets  paragraphs  of  text. text is an array of the words to typeset, using the given line-
                 spacing and paragraph width. The whole text block is positioned at x, y  which  is  the  anchor
                 point  on  the  box  as  indicated by justify (see ps_text). The whole block is then shifted by
                 x_off, y_off. Inside the box, text is justified left, centered, right, or justified as governed
                 by  par_just  (lcrj).  draw_box contains 4 bit flags pertaining to the surrounding outline box.
                 If on, the first (lowest) bit draws the box outline. The second bit fills the box interior. The
                 third  bit makes the outline box have rounded corners (unless x_gap, y_gap, which specifies the
                 padding between the text and the box, are zero), while the forth bit  draws  a  line  from  the
                 original x, y point to the shifted position. The escape sequences described for ps_text applies
                 here, as well as two additional commands: @;r/g/b; changes the font color (@;; resets it),  and
                 @:size: changes the font size (@:: resets it).

AUTHOR

       Paul  Wessel,  School  of  Ocean  and Earth Science and Technology, 1680 East-West Road, Honolulu, Hawaii
       96822, (808) 956-4778, Internet address: wessel@soest.hawaii.edu.

BUGS

       Caveat Emptor: The author is not responsible for any disasters, suicide attempts,  or  ulcers  caused  by
       correct or incorrect use of pslib. If you find bugs, please report them to the author by electronic mail.
       Be sure to provide enough detail so that I can recreate the problem.

RESTRICTIONS

       Due to the finite  memory  of  some  output  devices  like  Laserwriters,  certain  restrictions  due  to
       limitations  of  the PostScript interpreter apply: For now, the arrays passed to ps_clipon and ps_polygon
       must contain less than about 1350 points. Also, the buffer array passed to ps_image must be able  to  fit
       in  the  available memory. Check the specifications of the hardcopy device you are using.  Note that some
       Raster Image Processors (RIPs) do not support direct color so that the colors you get may not be  exactly
       the  ones  you  wanted.  This is a limitation of the RIP, not the underlying PostScript code generated by
       pslib.

REFERENCES

       Adobe Systems Inc., 1990, PostScript  language  reference  manual,  2nd  edition,  Addison-Wesley,  (ISBN
       0-201-18127-4).

                                                   1 Jan 2004                                           pslib(l)