man pages for gs

6.0 Last change: 3 February 2000

NAME
     gs - Ghostscript (PostScript and  PDF  language  interpreter
     and previewer)

SYNOPSIS
     gs [ options ] [ files ] ... (Unix, VMS)
     gswin32 [ options ] [ files ] ... (MS Windows)
     gswin32c [ options ] [ files ] ... (MS Windows)
     gs386 [ options ] [ files ] ... (DOS for PC)
     gsos2 [ options ] [ files ] ... (OS/2)

DESCRIPTION
     The gs (gswin32, gswin32c,  gs386,  gsos2)  command  invokes
     Ghostscript, an interpreter of Adobe Systems' PostScript(tm)
     and Portable Document  Format  (PDF)  languages.   gs  reads
     "files"  in  sequence  and executes them as Ghostscript pro-
     grams.  After doing this, it reads further  input  from  the
     standard  input stream (normally the keyboard), interpreting
     each line separately.  The interpreter quits gracefully when
     it  encounters  the "quit" command (either in a file or from
     the keyboard), at end-of-file, or  at  an  interrupt  signal
     (such as Control-C at the keyboard).

     The interpreter recognizes several switches described below,
     which  may  appear anywhere in the command line and apply to
     all files thereafter.  Invoking Ghostscript with the  -h  or
     -?  switch  produces  a  message  which shows several useful
     switches, all the devices known to that executable, and  the
     search path for fonts; on Unix it also shows the location of
     detailed documentation.

     Ghostscript may be built able to use many  different  output
     devices.   To see which devices your executable can use, run
     "gs  -h".   Unless  you   specify   a   particular   device,
     Ghostscript  normally  opens  the  first  one  of  those and
     directs output to it, so if the first one in the list is the
     one you want to use, just issue the command

          gs myfile.ps

     You can also check the set of available devices from  within
     Ghostscript:  invoke Ghostscript and type

          devicenames ==

     but the first device on the resulting list may  not  be  the
     default  device  you  determine  with  "gs  -h".  To specify
     "AbcXyz" as the initial output device, include the switch

          -sDEVICE=AbcXyz

     For example, for output to an Epson printer  you  might  use
     the command

          gs -sDEVICE=epson myfile.ps

     The "-sDEVICE=" switch must precede the first mention  of  a
     file  to  print,  and  only  the  switch's first use has any
     effect.  Alternatively, in Ghostscript you can type

          (epson) selectdevice
          (myfile.ps) run

     All output then goes to the printer until you select another
     device  with  the "selectdevice" procedure in the PostScript
     program stream, for example

          (vga) selectdevice
     or
          (x11) selectdevice

     Finally, you can specify a default device in the environment
     variable  GS_DEVICE.   The  order  of  precedence  for these
     alternatives from highest to lowest  (Ghostscript  uses  the
     device defined highest in the list) is:

          selectdevice
          (command line)
          GS_DEVICE
          (first device in build list)

     Some printers can print  at  different  resolutions  (densi-
     ties).  To specify the resolution on such a printer, use the
     "-r" switch:

          gs -sDEVICE= -rx

     For example, on a 9-pin Epson-compatible  printer,  you  get
     the lowest-density (fastest) mode with

          gs -sDEVICE=epson -r60x72

     and the highest-density (best output quality) mode with

          gs -sDEVICE=epson -r240x72.

     If you select a printer as the  output  device,  Ghostscript
     also allows you to choose where Ghostscript sends the output
     -- on Unix systems, usually to a temporary  file.   To  send
     the output to a file "foo.xyz", use the switch

          -sOutputFile=foo.xyz

     You might want to print each page separately.  To  do  this,
     send  the  output  to a series of files "foo1.xyz, foo2.xyz,
     ..."  using  the  "-sOutputFile="  switch  with  "%d"  in  a
     filename template:

          -sOutputFile=foo%d.xyz

     Each resulting file receives one page  of  output,  and  the
     files  are  numbered  in  sequence.  "%d" is a printf format
     specification; you can also use a variant like "%02d".

     On Unix systems you can also send output  to  a  pipe.   For
     example, to pipe output to the "lpr" command (which, on many
     Unix systems, directs it to a printer), use the switch

          -sOutputFile=\|lpr

     You can also send output to standard output for piping  with
     the switch

          -sOutputFile=-

     In this case you must also use the  -q  switch,  to  prevent
     Ghostscript from writing messages to standard output.

     To select a specific paper size, use the command line switch

          -sPAPERSIZE=a_known_paper_size

     for instance

          -sPAPERSIZE=a4
     or
          -sPAPERSIZE=legal

     At this time, the known paper sizes, defined in the initial-
     ization file "gs_statd.ps", are:  tab(>); l l l l l.

     PAPERSIZE>X     inches>Y     inches>X     cm>Y     cm      _
     a0>33.0556>46.7778>83.9611>118.816
     a1>23.3889>33.0556>59.4078>83.9611
     a2>16.5278>23.3889>41.9806>59.4078
     a3>11.6944>16.5278>29.7039>41.9806
     a4>8.26389>11.6944>20.9903>29.7039
     a5>5.84722>8.26389>14.8519>20.9903
     a6>4.125>5.84722>10.4775>14.8519
     a7>2.91667>4.125>7.40833>10.4775
     a8>2.05556>2.91667>5.22111>7.40833
     a9>1.45833>2.05556>3.70417>5.22111
     a10>1.02778>1.45833>2.61056>3.70417
     b0>39.3889>55.6667>100.048>141.393
     b1>27.8333>39.3889>70.6967>100.048

     b2>19.6944>27.8333>50.0239>70.6967
     b3>13.9167>19.6944>35.3483>50.0239
     b4>9.84722>13.9167>25.0119>35.3483
     b5>6.95833>9.84722>17.6742>25.0119    archA>9>12>22.86>30.48
     archB>12>18>30.48>45.72              archC>18>24>45.72>60.96
     archD>24>36>60.96>91.44             archE>36>48>91.44>121.92
     flsa>8.5>13>21.59>33.02     flse>8.5>13>21.59>33.02     hal-
     fletter>5.5>8.5>13.97>21.59           note>7.5>10>19.05>25.4
     letter>8.5>11>21.59>27.94           legal>8.5>14>21.59>35.56
     11x17>11>17>27.94>43.18 ledger>17>11>43.18>27.94

     Note that the B paper sizes are ISO sizes:  for  information
     about using JIS B sizes, see Use.htm.

     Ghostscript can do many things  other  than  print  or  view
     PostScript  and PDF files.  For example, if you want to know
     the bounding box of a PostScript (or EPS) file,  Ghostscript
     provides a special "device" that just prints out this infor-
     mation:

          gs -sDEVICE=bbox myfile.ps

     For example, using one of the example files distributed with
     Ghostscript,

          gs -sDEVICE=bbox golfer.ps

     prints out

          %%BoundingBox: 0 25 583 732
          %%HiResBoundingBox: 0.808497 25.009496 582.994503 731.809445

INITIALIZATION FILES
     When looking for the  initialization  files  "gs_*.ps",  the
     files  related to fonts, or the file for the "run" operator,
     Ghostscript first tries to open the file with  the  name  as
     given,  using  the current working directory if no directory
     is specified.  If this fails,  and  the  file  name  doesn't
     specify  an  explicit  directory  or  drive  (for  instance,
     doesn't contain "/" on Unix systems or "\" on DOS  systems),
     Ghostscript tries directories in this order:

     1.  the directories specified by the -I switches in the com-
         mand line (see below), if any;

     2.  the directories  specified  by  the  GS_LIB  environment
         variable, if any;

     3.  the directories specified by the GS_LIB_DEFAULT macro in
         the  Ghostscript makefile when the executable was built.
         When gs is built  on  Unix,  GS_LIB_DEFAULT  is  usually
         "/usr/local/share/ghostscript/#.##:/usr/local/share/ghostscript/fonts"

         where "#.##" represents the Ghostscript version number.

     Each of these (GS_LIB_DEFAULT, GS_LIB, and -I parameter) may
     be  either  a  single  directory  or  a  list of directories
     separated by ":".

X RESOURCES
     Ghostscript looks for the following resources under the pro-
     gram name "Ghostscript":

     borderWidth
          The border width in pixels (default = 1).

     borderColor
          The name of the border color (default = black).

     geometry
          The window size  and  placement,  WxH+X+Y  (default  is
          NULL).

     xResolution
          The number of x pixels per inch  (default  is  computed
          from WidthOfScreen and WidthMMOfScreen).

     yResolution
          The number of y pixels per inch  (default  is  computed
          from HeightOfScreen and HeightMMOfScreen).

     useBackingPixmap
          Determines whether backing store is to be used for sav-
          ing display window (default = true).

     See  the  usage  document  for  a  more  complete  list   of
     resources.   To  set  these resources on Unix, put them in a
     file such as "~/.Xresources" in the following form:

          Ghostscript*geometry:     612x792-0+0
          Ghostscript*xResolution: 72
          Ghostscript*yResolution: 72

     Then merge these resources  into  the  X  server's  resource
     database:

          % xrdb -merge ~/.Xresources

SWITCHES
     -- filename arg1 ...
          Takes the next argument as a file name  as  usual,  but
          takes  all  remaining  arguments (even if they have the
          syntactic form of switches) and defines the name "ARGU-
          MENTS"  in "userdict" (not "systemdict") as an array of
          those  strings,  before   running   the   file.    When

          Ghostscript  finishes executing the file, it exits back
          to the shell.

     -Dname=token
     -dname=token
          Define a name in "systemdict" with  the  given  defini-
          tion.   The token must be exactly one token (as defined
          by the "token" operator) and may contain no whitespace.

     -Dname
     -dname
          Define a name in "systemdict" with value=null.

     -Sname=string
     -sname=string
          Define a name in "systemdict" with a  given  string  as
          value.   This  is  different  from  -d.   For  example,
          -dname=35 is equivalent to the program fragment
               /name 35 def
          whereas -sname=35 is equivalent to
               /name (35) def

     -q   Quiet startup: suppress normal  startup  messages,  and
          also do the equivalent of -dQUIET.

     -gnumber1xnumber2
          Equivalent      to      -dDEVICEWIDTH=number1       and
          -dDEVICEHEIGHT=number2.   This  is  for  the benefit of
          devices (such as X11 windows) that require  (or  allow)
          width and height to be specified.

     -rnumber
     -rnumber1xnumber2
          Equivalent    to    -dDEVICEXRESOLUTION=number1     and
          -dDEVICEYRESOLUTION=number2.   This  is for the benefit
          of devices such as printers that support multiple X and
          Y resolutions.  If only one number is given, it is used
          for both X and Y resolutions.

     -Idirectories
          Adds the designated list of directories at the head  of
          the search path for library files.

     -    This  is  not  really  a  switch,  but   indicates   to
          Ghostscript  that  standard input is coming from a file
          or a pipe and not interactively from the command  line.
          Ghostscript  reads from standard input until it reaches
          end-of-file, executing it like any other file, and then
          continues  with  processing the command line.  When the
          command line has been entirely  processed,  Ghostscript
          exits rather than going into its interactive mode.

     Note that the normal initialization file "gs_init.ps"  makes
     "systemdict"  read-only, so the values of names defined with
     -D, -d, -S, or -s cannot be changed  (although,  of  course,
     they can be superseded by definitions in "userdict" or other
     dictionaries.)

SPECIAL NAMES
     -dDISKFONTS
          Causes individual character outlines to be loaded  from
          the  disk  the  first time they are encountered.  (Nor-
          mally Ghostscript loads all the character outlines when
          it  loads  a  font.)  This may allow loading more fonts
          into RAM, at the expense of slower rendering.

     -dNOCACHE
          Disables character caching.  Useful only for debugging.

     -dNOBIND
          Disables the "bind" operator.  Useful only  for  debug-
          ging.

     -dNODISPLAY
          Suppresses the normal initialization of the output dev-
          ice.  This may be useful when debugging.

     -dNOPAUSE
          Disables the prompt and pause at the end of each  page.
          This  may  be  desirable for applications where another
          program is driving Ghostscript.

     -dNOPLATFONTS
          Disables the use of fonts supplied  by  the  underlying
          platform  (for instance X Windows).  This may be needed
          if the platform fonts look undesirably  different  from
          the scalable fonts.

     -dSAFER
          Disables the "deletefile"  and  "renamefile"  operators
          and  the  ability  to open files in any mode other than
          read-only.  This may be desirable for spoolers or other
          sensitive  environments  where a badly written or mali-
          cious PostScript program must be prevented from  chang-
          ing important files.

     -dWRITESYSTEMDICT
          Leaves "systemdict" writable.  This is  necessary  when
          running  special  utility  programs  such as font2c and
          pcharstr, which must bypass  normal  PostScript  access
          protection.

     -sDEVICE=device
          Selects  an  alternate  initial   output   device,   as

          described above.

     -sOutputFile=filename
          Selects an alternate output file (or pipe) for the ini-
          tial output device, as described above.

FILES
     The locations of many Ghostscript run-time  files  are  com-
     piled  into  the executable when it is built.  On Unix these
     are typically based in /usr/local, but this may be different
     on  your  system.   Under  DOS  they  are typically based in
     C:\GS, but may  be  elsewhere,  especially  if  you  install
     Ghostscript  with  GSview.  Run "gs -h" to find the location
     of Ghostscript documentation on your system, from which  you
     can get more details.

     /usr/local/share/ghostscript/#.##/*
          Startup files, utilities, and basic font definitions

     /usr/local/share/ghostscript/fonts/*
          More font definitions

     /usr/local/share/ghostscript/#.##/examples/*
          Ghostscript demonstration files

     /usr/local/share/ghostscript/#.##/doc/*
          Diverse document files

ENVIRONMENT
     GS_OPTIONS
          String of options to be processed  before  the  command
          line options

     GS_DEVICE
          Used to specify an output device

     GS_FONTPATH
          Path names used to search for fonts

     GS_LIB
          Path names for initialization files and fonts

     TEMP Where temporary files are made

SEE ALSO
     The various Ghostscript document files  (above),  especially
     Use.htm.

BUGS
     See the Usenet news group comp.lang.postscript.

VERSION
     This document was last revised for Ghostscript version 6.0.

AUTHOR
     L. Peter Deutsch  is the principal author
     of  Ghostscript.   Russell  J. Lang  is the
     author of most of the MS Windows code in Ghostscript.