home | help
GS(1)				   Ghostscript				   GS(1)

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 Ghost-
     script programs.  After doing this, it reads further input from  the  stan-
     dard  input  stream  (normally  the keyboard), interpreting each line sepa-
     rately.  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  ap-
     pear  anywhere  in the command line and apply to all files thereafter.  In-
     voking 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 docu-
     mentation.

     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 de-
     vice, 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 Ghost-
     script 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 (densities).  To specify
     the resolution on such a printer, use the "-r" switch:

	  gs -sDEVICE=<device> -r<xres>x<yres>

     For example, on a 9-pin Epson-compatible printer, you get	the  lowest-den-
     sity (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  initialization  file
     "gs_statd.ps", are:

     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
     halfletter   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 information:

	  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 or-
     der:

     1.  the directories specified by the -I switches in the command  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 Ghost-
	 script makefile when the executable was built.  When  gs  is  built  on
	 Unix,	   GS_LIB_DEFAULT     is     usually	"/usr/local/share/ghost-
	 script/#.##:/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 program 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	WidthOf-
	    Screen and WidthMMOfScreen).

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

     useBackingPixmap
	    Determines whether backing store is to be used  for  saving  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 fol-
     lowing 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  re-
	    maining arguments (even if they have the syntactic form of switches)
	    and defines the name "ARGUMENTS" in "userdict" (not "systemdict") as
	    an	array  of  those  strings, before running the file.  When Ghost-
	    script finishes executing the file, it exits back to the shell.

     -Dname=token
     -dname=token
	    Define a name in "systemdict" with the given definition.  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 pro-
	    gram 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  re-
	    quire (or allow) width and height to be specified.

     -rnumber
     -rnumber1xnumber2
	    Equivalent	 to   -dDEVICEXRESOLUTION=number1  and	-dDEVICEYRESOLU-
	    TION=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 stan-
	    dard  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
     -dSAFER
	    Disables the "deletefile" and "renamefile" operators and the ability
	    to	open  files  in any mode other than read-only. This is desirable
	    for spoolers or any other environments where a  malicious  or  badly
	    written PostScript program must be prevented from changing important
	    files.

     -dBATCH
	    Causes  Ghostscript  to exit after processing all files named on the
	    command line, rather than prompting for further PostScript commands.

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

     -sDEVICE=device
	    Selects an alternate initial output device, as described above.

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

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

     -dNOCACHE
	    Disables character caching. Useful only for debugging.

     -dNOBIND
	    Disables the "bind" operator. Useful only for debugging.

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

     -dDISKFONTS
	    Causes  individual character outlines to be loaded from the disk the
	    first time they are encountered. (Normally 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.

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

FILES
     The locations of many Ghostscript run-time files are compiled into the exe-
     cutable 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 7.07.

AUTHOR
     L. Peter Deutsch <ghost@aladdin.com> is  the  principal  author  of  Ghost-
     script.   Russell J. Lang <rjl@aladdin.com> is the author of most of the MS
     Windows code in Ghostscript.

7.07				   17 May 2003				   GS(1)

home | help