[ Prev ] [ Index ] [ Next ]

Ghostscript gs(1) is a postscript and pdf engine that can be used for a bunch of these,
including rendering postscript files. On most linux systems, the Ghostscript interpretor
is started with the gs(1) command. Arguments, including an input filename, output
device and etc are all optional as they can be specfied within the interpretor interface
itself. The Ghostscript prompt GS> indicates that the interpretor is ready to receive
postscript commands. Typing quit will exit the interpretor.

1. Basics
On most linux systems, the Ghostscript interpretor is started with the gs(1)
command. Arguments, including an input filename, output device and etc. are all
optional as they can be specfied within the interpretor interface itself.
The Ghostscript prompt GS> indicates that the interpretor is ready to receive
postscript commands. Typing quit will exit the interpretor.

2. Viewing a postscript file (X display device)

    The ghostscript command can be used to view the contents of a postscript file
    simply by running gs(1) with the name of the postscript file as an argument.
    However, if ghostscript is not given an output device, then it will choose the
    first available one that it finds and direct all output to that device. This
    may result in your postscript file not showing up on your X terminal as 
    expected. This can be resolved by specifying the device (either on the
    command line with DEVICE= or within ghostscript itself, see point #3 for
    this). Typically the "x11" device is what's needed for rendering postscript
    to a display device. Refer to point #4 for more info on output devices.
        bash % gs -sDEVICE=x11 some.ps      
    The above render page 1 of "some.ps" on the x11 device. To move to the
    next page either type "nextpage" or press enter at the "GS>" prompt.
    Note that the desired output device must be selected before the postscript
    file is loaded, otherwise the preceeding (or default) device is used
    (this is also clearly applies to using commands within ghostscript)

3. Postscript commands

    Ghostscript is a postscript interpretor and as such you can issue postscript
    commands at the GS> prompt. The following sequence of commands sets
    the device to "x11" and runs the postscript file "some.ps"
        bash % gs
        GS> 
        GNU Ghostscript 7.07 (2003-05-17)
        GS> (x11) selectdevice
        GS> (some.ps) run
        GS) quit

4. Report known devices

    Ghostscript will report the output devices it knows about as part of
    the help (-h) option. The output below is edited to reduce size:
        bash % gs -h
    GNU Ghostscript 7.07 (2003-05-17)
    Copyright (C) 2003 artofcode LLC, Benicia, CA.  All rights reserved.
    Usage: gs [switches] [file1.ps file2.ps ...]
    Most frequently used switches: (you can use # in place of =)
     -sDEVICE=<devname>  select device         | -dBATCH  exit after last file
    Input formats: PostScript PostScriptLevel1 PostScriptLevel2 PDF
    Default output device: display
    Available devices:
       AP21xx DJ630 DJ6xx DJ6xxP DJ8xx DJ9xx DJ9xxVIP alc1900 alc2000 alc4000
       bitcmyk bitrgb bj10e bj10v bj10vh bj200 bjc600 bjc800 bjc880j bjccmyk
    Search path:
       . : /usr/share/ghostscript/7.07/lib : /usr/share/ghostscript/7.07/vflib :
    For more information, see /usr/share/doc/ghostscript-7.07/Use.htm.
    Report bugs to bug-gs@ghostscript.com, using the form in Bug-form.htm.

5. Directing output to the printer

    It's possible to use Ghostscripts "OutputFile" command to send the rendering
    to a printer. This is done by setting the output file to a piped command (note
    the pipe needs to be quoted to stop the shell from interpreting it straight
    away).
        bash % gs -sOutputFile=\|lpr some.ps

6. Ghostscript doco

    The installed Ghostscript (for linux) has documentation in /usr/share/doc
    as well as the man pages. There are examples as well. These absolute pathnames
    refer to version 7.07 of Ghostscript as installed for FC3.
    /usr/share/ghostscript/7.07     Lib and examples
    /usr/share/doc/ghostscript-7.07 Doco directory: 
    /usr/man/man1/gs*.1             Man pages. E.g., gs, gslp and etc.

7. Paging

    Ghostscript paging is pretty obscure. It appears that phostscript files
    get "executed" (i.e., with commands like "(a.ps) run", which is implied
    with a filename is provided on the command line. 
    Whislt it's possible to start at an arbitrary page of a document, it
    doesn't appear possible to move back and forward through pages of a 
    running document or if it is, then it's pretty weird and baroque.
    By default, page prompts occur at the end of each page of a running 
    document. Ghostscript (actually EPS) requires a bounding box to define 
    the permimeter of the rendering area of the postscript being displayed 
    and this is used this to determine where the end of a page is and 
    Ghostscript puts a prompt and pauses for user interaction.
    Pressing enter continues from the pause. Both the pause and the prompt
    (which is "showpage press return") can be disabled. Indeed Ghostscript
    can be directed to read it's prompt input from /dev/tty instead of
    stdin.
    Some simple switches relating to pagination and prompting (lifted
    from GS 7.07 doco):
        -dNOPAGEPROMPT  Disables the prompt, but not the pause. 
        -dNOPAUSE       Disables both the prompt and pause. This should be
                        used (along with -dBATCH) when producing output on 
                        a printer or to a file. 
        -dNOPROMPT      Disables the printed prompt by Ghostscript when it 
                        expects interactive input, as well as the end-of-page 
                        prompt (-dNOPAGEPROMPT); This allows piping input 
                        directly into Ghostscript. Note, gs still pauses
                        though.
        -dQUIET         Suppresses information comments on standard output. 
                        Required when redirecting device output to standard 
                        output. 
        -dSHORTERRORS   Makes certain error and information messages more 
                        Adobe-compatible. 
        -sstdout=filename Redirect PostScript %stdout to a file or stderr. 
                        Avoids it being mixed with device stdout. To redirect 
                        stdout to stderr use -sstdout=%stderr. To cancel 
                        redirection of stdout use -sstdout=%stdout or -sstdout=-. 
        -dTTYPAUSE      Read a character from /dev/tty at the end of each page. 
                        May be useful if input is coming from a pipe. Note that 
                        -dTTYPAUSE overrides -dNOPAUSE. 

Backlinks: