Introduction
This document is a roadmap to the Ghostscript documentation. After looking through it, if you want to install Ghostscript and not only use it, we recommend you read How to install Ghostscript, and How to compile Ghostscript from source code (which is necessary before installing it on Unix and VMS systems).
What is Ghostscript?
There are various products in the Ghostscript family; this document describes what they are, and how they are related.
Ghostscript
Ghostscript is an interpreter for PostScript® and Portable Document Format (PDF) files.
Ghostscript consists of a PostScript interpreter layer, and a graphics library. The graphics library is shared with all the other products in the Ghostscript family, so all of these technologies are sometimes referred to as Ghostscript, rather than the more correct GhostPDL.
Binaries for Ghostscript and (see below) GhostPDF (included in the Ghostscript binaries) for various systems can be downloaded from here. The source can be found in both the Ghostscript and GhostPDL downloads from the same site.
GhostPDF
Prior to release 9.55.0 GhostPDF was an interpreter for the PDF page description language built on top of Ghostscript, and written in the PostScript programming language. From 9.55.0 onwards there is a new GhostPDF executable, separate from Ghostscript and written in C rather than PostScript.
This new interpreter has also been integrated into Ghostscript itself, in order to preserve the PDF functionality of that interpreter. For now, the old PostScript-based interpreter remains the default, but the new interpreter is built-in alongside it.
The intention is that the new interpreter will replace the old one, which will be withdrawn.
It is possible to control which interpreter is used with the NEWPDF command-line switch. When this is false (the current default) the old PostScript-based interpreter is used, when NEWPDF is true then the new C-based interpreter is used.
GhostPDL
Historically, we’ve used GhostPDL as an umbrella term to encompass our entire line of products. We’ve now brought all these disparate products together into a single package, called, appropriately enough, GhostPDL.
When running on a printer (or server) GhostPDL now automatically detects the type of data being fed to it and processes it accordingly. The individual interpreters all plug into a top-level module that handles both automatic language detection and Printer Job Language (PJL) based configuration.
The exact set of interpreters present in an installation can be tuned by the integrator for their specific product/use cases.
In addition to our existing PDL modules (PS, PDF, PCL, PXL, and XPS) we have now added new modules to handle a range of common image formats. With these installed, GhostPDL will handle JPEGs (both JFIF and EXIF), PWGs, TIFFs, PNGs, JBIG2s, and JPEG2000s.
GhostPDL is available both under the GNU Affero GPL license and for commercial licensing from Artifex.
The source code for GhostPDL can be found here.
GhostPCL
GhostPCL is an interpreter for PCL™ and PXL files. This consists of an PCL/PXL interpreter hooked up to the Ghostscript graphics library.
GhostPCL is available both under the GNU Affero GPL license and for commercial licensing from Artifex.
Binaries for GhostPCL for various systems can be downloaded from here. The source can be found in the GhostPCL/GhostPDL downloads from the same site.
GhostXPS
GhostXPS is an interpreter for XPS (XML Paper Specfication) files. This consists of an XPS interpreter hooked up to the Ghostscript graphics library.
GhostXPS is available both under the GNU Affero GPL license and for commercial licensing from Artifex.
Binaries for GhostXPS for various systems can be downloaded from here. The source can be found in the GhostXPS/GhostPDL downloads from the same site.
URW Font Information
The set of truetype fonts in the urwfonts directory are necessary for the PCL/XL interpreter to function properly but they ARE NOT FREE SOFTWARE and are NOT distributed under the GNU GPL/AGPL. They can instead be redistributed under the AFPL license which bars commercial use.
If your copy of GhostPDL includes these fonts, you should have received a copy of the Aladdin Free Public License, usually in a file called COPYING.AFPL. If not, please contact Artifex Software, Inc. 1305 Grant Avenue - Suite 200, Novato, CA 94945 USA, or visit Artifex
Document roadmap by theme
What should I read if I’m a new user?
how to use Ghostscript. This includes both a quickstart introduction to the commandline version and more extensive reference material.
detailed information about specific devices that Ghostscript can use for output
more detailed information about how to use Ghostscript under Unix with
lpr
as a filter for printingfor information about known problems or to report a new one, please visit bugs.ghostscript.com but remember that free versions of Ghostscript come with with NO WARRANTY and NO SUPPORT
GPL and commercial Ghostscript
GPL Ghostscript, Artifex Ghostscript and AFPL Ghostscript are different releases.
additional information about GPL Ghostscript releases that is not relevant to commercial versions.
If you run into any questions, or if you are going to be using Ghostscript extensively, you should at least skim, and probably eventually read:
about the fonts distributed with Ghostscript, including how to add or replace fonts
a description of the Ghostscript language, and its differences from the documented PostScript language
about the postscript files distributed with Ghostscript (other than fonts)
Before building Ghostscript
If you are going to compile Ghostscript from source, rather than just use an executable you got from somewhere, you may want to read:
What should I read if I’m not a new user?
If you have already used Ghostscript, when you receive a new release you should begin by reading this file, then:
News, for incompatible changes and new features in the current release;
if you wish, History#.htm (currently History9.htm), for changes in the current and earlier releases.
What if I’m a developer?
If you are going to do any development on or with Ghostscript at all, you should at least look at:
the roadmap documentation for Ghostscript’s source files and architecture
If you are going to write a new driver for Ghostscript, you should read:
the interface between Ghostscript and device drivers
If you are considering distributing GPL Ghostscript in conjunction with a commercial product, you should read the license carefully, and you should also read:
additional clarification of the circumstances under which Ghostscript can be distributed with a commercial product
If you intend to use Ghostscript in the form of a dynamic link library (DLL) under OS/2 or Microsoft Windows or in the form of shared object under Linux, read:
documentation on Ghostscript Interpreter API
If you want to use Ghostscript as part of another program, as a callable PostScript language interpreter, and not as a DLL or as a self-contained executable application, you should begin by reading:
the source file
imain.h
, the documented API for Ghostscript not as a DLL
or if you are going to use only the Ghostscript graphics library:
about the structure of the Ghostscript library and its interfaces
What if I’m writing documentation?
If you are editing or adding to Ghostscript’s existing documentation you should contact us on our IRC channel or the gs-devel mailing list for guidance, links to those are on: www.ghostscript.com.
Presence on the World Wide Web
Ghostscript’s home page
Ghostscript has a home page on the World Wide Web with helpful information such as the FAQ (Frequently Asked Questions):
Adobe PostScript, Encapsulated PostScript, and PDF reference documentation
Adobe makes a wealth of technical documentation available over the Web, including the PostScript Language Reference Manual (Third Edition) ; the Encapsulated PostScript (EPS) Format Specification version 3, including Encapsulated PostScript Interchange (EPSI) format; the PDF Reference manuals. The Acrobat SDK contains pdfmark and Acrobat Distiller parameters documentation.
Other material on the WWW
Much other material about Ghostscript is available on the World Wide Web, both as web pages and as archived Usenet and mailing list discussions. Use the well-known search engines to find such material.
Which document contains what?
Here is the list in alphabetic order of Ghostscript documentation, with explanations of the contents.
API
On MS-Windows and OS/2, Ghostscript is compiled as a dynamic link library (DLL). On Linux, Ghostscript can be compiled as a shared object. This describes how to use it. For developers.
See: API
COPYING
The GNU Affero General Public License, which states the conditions for using and redistributing GPL Ghostscript.
See: COPYING
C-style
Guidelines and style for C coding, which you should follow if, for example, you write a new driver or add or change something in Ghostscript. For developers.
See: C-style
Develop
Code orientation for developers. Contains a detailed breakdown of the source files by functional group, and overviews of the major architectural features and services.
See: Develop
Deprecated
Documention for deprecated devices and features. Features described here will be removed in future versions of Ghostscript.
See: Deprecated.htm
Devices
Detailed information about some specific devices for which Ghostscript can produce output. Run “gs -h” to see which devices a particular version of Ghostscript is built to use.
See: Devices.htm
DLL
On OS/2, MS Windows-16 and MS Windows-32 platforms, Ghostscript is compiled as a dynamic link library (DLL). This describes how to use it. For developers. This DLL interface is obsolete. Use API instead.
See: DLL.htm
Drivers
Describes the interface between Ghostscript and device drivers. If you do this, you should also read and use the C style and coding guidelines. Necessary to develop a new driver. For developers.
See: Drivers.htm
Fonts
All about fonts freely available for Ghostscript, and how to add and use new fonts. Also describes how to use Ghostscript fonts as X Windows fonts. For both users and developers.
See: Fonts.htm
History
The history of changes in all Ghostscript releases: History9.htm for Ghostscript versions 9.n
See: History.htm
Install
How to install Ghostscript. See also how to build it.
See: Install.htm
Internal
Description of operators that are for internal/developer use only.
See: Internal.htm
Language
The relationship between the Ghostscript interpreter and the PostScript language as defined by Adobe.
See: Language.htm
Lib
A description of the Ghostscript library, a set of procedures to implement the graphics and filtering capabilities that are primitive operations in the PostScript language and in Adobe Portable Document Format (PDF). For developers.
See: Lib.htm
Make
How to build Ghostscript executables from the source code. See also how to install it. It’s not necessary to be a highly experienced developer to build or install Ghostscript, but some experience is needed.
See: Make.htm
News
A brief description of the latest release or pre-release of Ghostscript, and a list of any incompatible changes in it. Changes in older releases are described in the history files “History*.htm”, which are usually installed in the documentation directory. Run gs -h
to see where that is.
See: News.htm
Ps-style
The guidelines and style for postscript coding in Ghostscript. Some of Ghostscript is implemented in the postscript language itself, and various utilities and examples are distributed with it. You should follow these guidelines if you’re extending or modifying those files. For developers.
See: Ps-style.htm
Ps2epsi
Detailed information on how to use Ghostscript through ps2epsi to convert PostScript to Adobe Encapsulated PostScript Interchange (EPSI) format.
See: Ps2epsi.htm
Psfiles
A description of the PostScript files (other than font files) distributed with Ghostscript, including initialization routines, utility programs, and sample printable files.
See: Psfiles.htm
Readme
This document.
Release
A description of how to prepare and test a Ghostscript release. Of interest only to developers who want to create new Ghostscript versions for distribution.
See: Release.htm
Source
A guide to the Ghostscript source code, for development and debugging.
See: Source.htm
Thirdparty
Contains a table of “third party libraries” (that is, code from outwith the Ghostscript/GhostPDL project) that we import to our project and supply in our releases. Including the purpose they serve, the version we QA and ship, the license under which the code distributed and the URL for the “upstream” project.
See: thirdparty.htm
Unix-lpr
How to set up Ghostscript as a Unix lpr filter.
See: Unix-lpr.htm
Use
Detailed instructions on how to use Ghostscript, including such matters as designating an output device; choosing a default paper size; how Ghostscript finds files, including font files; how it uses environment variables; notes on specific platforms, including the X Window System; and command-line options.
See: Use.htm
VectorDevices
Detailed information on how to use Ghostscript, GhostPCL and GhostXPS to convert PostScript, PDF, XPS, PCL or PXL input to Adobe Portable Document Format (PDF), Adobe PostScript Level 2, Adobe Encapsulated PostScript Level 2, Open XML (XPS) or PCL-XL.
See: VectorDevices.htm
Copyright © 2000-2022 Artifex Software, Inc. All rights reserved.
This software is provided AS-IS with no warranty, either express or implied. This software is distributed under license and may not be copied, modified or distributed except as expressly authorized under the terms of that license. Refer to licensing information at https://www.artifex.com or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
Ghostscript version 9.56.1, 4 April 2022