Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


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

       gs  -  Ghostscript  (PostScript	and  PDF language interpreter and pre-

       gs [ options ] [	files ]	... (Unix, VMS)
       gswin32c	[ options ] [ files ] ... (MS Windows)
       gswin32 [ options ] [ files ] ... (MS Windows 3.1)
       gsos2 [ options ] [ files ] ... (OS/2)

       The gs (gswin32c, gswin32, gsos2) command invokes Ghostscript,  an  in-
       terpreter of Adobe Systems' PostScript(tm) and Portable Document	Format
       (PDF) languages.	 gs reads "files" in sequence  and  executes  them  as
       Ghostscript programs. After doing this, it reads	further	input from the
       standard	input stream (normally the keyboard), interpreting  each  line
       separately and output to	an output device (may be a file	or an X11 win-
       dow preview, see	below).	The interpreter	exits gracefully when  it  en-
       counters	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  key-

       The  interpreter	recognizes many	option switches, some of which are de-
       scribed below. Please see the usage documentation for complete informa-
       tion. Switches may appear anywhere in the command line and apply	to all
       files thereafter.  Invoking Ghostscript with the	-h or -?  switch  pro-
       duces  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 to use	many different output devices.	To see
       which devices your executable includes, run "gs -h".

       Unless you specify a particular device, Ghostscript normally opens  the
       first one of those and directs output to	it.

       If  built  with	X11 support, often the default device is an X11	window
       (previewer), else ghostscript will typically use	the  bbox  device  and
       print on	stdout the dimension of	the postscript file.

       So  if the first	one in the list	is the one you want to use, just issue
       the command


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

	    devicenames	==

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


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

	    gs -sDEVICE=epson

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

       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:

       Some devices can	support	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-
       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  "",
       use the switch

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

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

       On Unix and MS Windows systems you can also send	output to a pipe.  For
       example,	to pipe	output to the "lpr" command (which, on many Unix  sys-
       tems, directs it	to a printer), use the option


       Note  that the '%' characters need to be	doubled	on MS Windows to avoid
       mangling	by the command interpreter.

       You can also send output	to standard output:


       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


       for instance


       Most ISO	and US paper sizes are recognized. See the usage documentation
       for a  full  list,  or  the  definitions	 in  the  initialization  file

       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.

       For example, using one of the example  files  distributed  with	Ghost-

	    gs -sDEVICE=bbox

       prints out

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

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

	      Define a name in "systemdict" with the  given  definition.   The
	      token must be exactly one	token (as defined by the "token" oper-
	      ator) and	may contain no whitespace.

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

	      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

       -P     Makes Ghostscript	to look	first in the current directory for li-
	      brary  files.   By  default,  Ghostscript	no longer looks	in the
	      current directory, unless, of course, the	first explicitly  sup-
	      plied directory is "." in	-I.  See also the INITIALIZATION FILES
	      section below, and bundled Use.htm for  detailed	discussion  on
	      search paths and how Ghostcript finds files.

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

	      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.

	      Equivalent to -dDEVICEXRESOLUTION=number1	 and  -dDEVICEYRESOLU-
	      TION=number2.  This is for the benefit of	devices	such as	print-
	      ers that support multiple	X and Y	resolutions.  If only one num-
	      ber is given, it is used for both	X and Y	resolutions.

	      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 interac-
	      tively 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	 ""  makes  "system-
       dict"  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 defi-
       nitions in "userdict" or	other dictionaries.)

	      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

	      Disables character caching.  Useful only for debugging.

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

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

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

	      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.

	      Restricts	file operations	the job	can perform.  Strongly	recom-
	      mended for spoolers, conversion scripts or other sensitive envi-
	      ronments where a badly written or	malicious  PostScript  program
	      code must	be prevented from changing important files.

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

	      Selects an alternate initial output device, as described above.

	      Selects  an alternate output file	(or pipe) for the initial out-
	      put device, as described above.

       The -dSAFER option disables the "deletefile" and	"renamefile" operators
       and  prohibits opening piped commands ("%pipe%cmd"). Only "%stdout" and
       "%stderr" can be	opened for writing.  It	 also  disables	 reading  from
       files, except for "%stdin", files given as a command line argument, and
       files contained in paths	given by LIBPATH and FONTPATH or specified  by
       the system params /FontResourceDir and /GenericResourceDir.

       This mode also sets the .LockSafetyParams parameter of the initial out-
       put device to protect against programs that attempt to write  to	 files
       using  the  OutputFile  device  parameter.  Since the device parameters
       specified on the	command	line, including	OutputFile, are	set  prior  to
       SAFER  mode,  use  of  "-sOutputFile=..."  on the command line is unre-

       SAFER mode prevents changing the	/GenericResourceDir, /FontResourceDir,
       /SystemParamsPassword, and /StartJobPassword.

       While SAFER mode	is not the default, it is the default for many wrapper
       scripts such as ps2pdf and may be the default in	a  subsequent  release
       of  Ghostscript.	 Thus when running programs that need to open files or
       set restricted parameters you should pass the  -dNOSAFER	 command  line
       option or its synonym -dDELAYSAFER.

       When running with -dNOSAFER it is possible to perform a "save" followed
       by ".setsafe", execute a	file or	procedure in SAFER mode, and then  use
       "restore"  to return to NOSAFER mode.  In order to prevent the save ob-
       ject from  being	 restored  by  the  foreign  file  or  procedure,  the
       ".runandhide"  operator should be used to hide the save object from the
       restricted procedure.

       The locations of	many Ghostscript run-time files	are compiled 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

	      Startup files, utilities,	and basic font definitions

	      More font	definitions

	      Ghostscript demonstration	files

	      Diverse document 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  di-
       rectory 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 MS Windows systems), Ghostscript
       tries directories in this order:

       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

       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 "#.##"	repre-
	   sents 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	":".

	      String  of  options  to be processed before the command line op-

	      Used to specify an output	device

	      Path names used to search	for fonts

       GS_LIB Path names for initialization files and fonts

       TEMP   Where temporary files are	made

       Ghostscript, or more properly the X11 display  device,  looks  for  the
       following resources under the program name "Ghostscript":

	      The border width in pixels (default = 1).

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

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

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

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

	      Determines  whether  backing store is to be used for saving dis-
	      play 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

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

       See   and	  the	Usenet	 news	 group

       This document was last revised for Ghostscript version 9.06.

       Artifex	Software,  Inc.	 are  the  primary maintainers of Ghostscript.
       Russell J. Lang,	gsview at, is the author  of  most  of
       the MS Windows code in Ghostscript.

9.06				 8 August 2012				 GS(1)


Want to link to this manual page? Use this URL:

home | help