# PostScript files distributed with Ghostscript

## Table of contents

> - Generally used system files
> - More obscure system files
> - Configuration files
> - PDF-specific system files
> - Display PostScript-specific system files
> - Art and examples
> - Utilities
> - Development tools
> - Odds and ends

For other information, see the Ghostscript overview.

## Generally used system files

These files are found in the `lib` subdirectory of the Ghostscript source distribution.

`gs_*_e.ps`

  These files define the Encodings known to Ghostscript. All of them except `gs_std_e.ps` and `gs_il1_e.ps` are loaded only if referred to.

  PostScript Encodings:
    `gs_ce_e.ps`, `gs_il1_e.ps`, `gs_std_e.ps`, `gs_sym_e.ps`.
  PDF Encodings:
    `gs_mex_e.ps`, `gs_mro_e.ps`, `gs_pdf_e.ps`, `gs_wan_e.ps`.
  Non-standard Encodings:
    `gs_dbt_e.ps`, `gs_il2_e.ps`, `gs_ksb_e.ps`, `gs_wl1_e.ps`, `gs_wl2_e.ps`, `gs_wl5_e.ps`.
  Pseudo-encodings:
    `gs_css_e.ps`, `gs_lgo_e.ps`, `gs_lgx_e.ps`, `gs_mgl_e.ps`.

`gs_btokn.ps`
  `gs_init.ps` reads this in if the `btoken` feature is included in the configuration. It provides support for binary tokens.

`gs_ccfnt.ps`
  `gs_init.ps` reads this in if the `ccfonts` feature is included in the configuration. It provides support for compiled fonts.

`gs_cff.ps`
  Load CFF (compressed) fonts.

`gs_fntem.ps`
  Code for emulating PostScript fonts with non-PostScript font technologies.

`gs_cidtt.ps`
  Code for emulating CID fonts with TrueType fonts.

`gs_cidcm.ps`
  Code for recognizing font names of the form CIDFont-CMap (or CIDFont--CMap) and creating the font automatically.

`gs_ciddc.ps`
  Defines Decoding and CIDDecoding resource categories and related procsets. Used for for emulating PostScript fonts with non-PostScript font technologies.

`gs_cidfm.ps`
  Provides resource mapping for CIDFont category.

`gs_cidfn.ps`
  `ProcSet` for implementing `CIDFont` and `CIDMap` resources.

`gs_ciecs2.ps`
  Implementation of the LangaugeLevel 2 CIEBased color spaces: CIEBasedA and CIEBasedABC.

`gs_ciecs3.ps`
  Implementation of the LangaugeLevel 3 CIEBased color spaces: CIEBasedA and CIEBasedABC.

`gs_cmap.ps`
  `ProcSet` for implementing `CMap` resources.

`gs_cspace.ps`
  PostScript portion of the basic color space handling; see the extensive comment at the head of the file for information. Note that color space substitution and the hue-saturation-brightness (HSB) color space are now fully implemented in the PostScript code; the interpreter and the graphic library are no longer involved in or even aware of these features.

`gs_devcs.ps`
  Implementation of the DeviceGray, DeviceRGB, and DeviceCMYK color spaces.

`gs_devn.ps`
  Implementation of the DeviceN color space.

`gs_devpxl.ps`
  Implementation of the DevicePixel color space.

`gs_dscp.ps`
  Code to compensate for badly written PostScript files by setting Orientation according to the DSC comments.

`gs_epsf.ps`
  Allow the interpreter to recognize DOS EPSF file headers, and skip to the PostScript section of the file.

`gs_fapi.ps`
  Font API support.

`gs_fonts.ps`
  `gs_init.ps` reads this in. It initializes Ghostscript's font machinery and provides some utility procedures that work with fonts.

`gs_frsd.ps`
  Support for the PostScript LanguageLevel 3 `ReusableStreamDecode` filter.

`gs_img.ps`
  Implementation of the traditional (non-dictionary) form of the image and imagemask operators, and the colorimage operator (including the Next alphaimage facility).

`gs_indxd.ps`
  Implementation of the Indexed color space.

`gs_init.ps`
  Ghostscript reads this automatically when it starts up. It contains definitions of many standard procedures and initialization for a wide variety of things.

`gs_lev2.ps`
  `gs_init.ps` reads this in if the Ghostscript interpreter includes Level 2 PostScript functions. It contains definitions of procedures and miscellaneous initialization for the Level 2 functions.

`gs_ll3.ps`
  Initialize PostScript LanguageLevel 3 functions.

`gs_patrn.ps`
  Implementation of the Pattern color space.

`gs_resmp.ps`
  A procset for redefining resource categories with a resource map.

`gs_resst.ps`
  A procset which allow to put resource files into static data segment of Ghostscript executable.

`gs_stres.ps`
  A map for generating the static data segment with including resource files, and for retrieving resources from there.

`gs_res.ps`
  `gs_init.ps` reads this in if the Level 2 resource machinery is included. Currently, this is the case for all Level 2 configurations.

`gs_sepr.ps`
  Implementaton of the Separation color space.

`gs_setpd.ps`
  Implementation of the `setpagedevice` operator.

`gs_statd.ps`
  `gs_init.ps` reads this in. It creates a dummy `statusdict` and some other environmental odds and ends for the benefit of PostScript files that really want to be printed on a LaserWriter.

`gs_trap.ps`
  Stub support for the PostScript LanguageLevel 3 "In-RIP trapping" feature.

`gs_ttf.ps`
  Support code for direct use of TrueType fonts.

`gs_typ32.ps`
  Initialization file for Type 32 fonts.

`gs_typ42.ps`
  Support code for Type 42 fonts (TrueType font in a PostScript "wrapper").

`gs_type1.ps`
  `gs_init.ps` reads this in if the Ghostscript interpreter includes Type 1 font capability (which it normally does).

## Configuration files

These files are found in the `lib` subdirectory of the Ghostscript source distribution. Users are allowed to modify them to configure Ghostscript.

`Fontmap`
  Font mapping table.

`cidfmap`
  CID font mapping table. Allows substitution of a CID font for another CID font or a TrueType font for a CID font.

`FAPIconfig`
  A configuration file for Font API client.

`FAPIfontmap`
  Font mapping table for Font-API-handled fonts.

`FAPIcidfmap`
  Font mapping table for Font-API-handled CID fonts.

## More obscure system files

These files are found in the `lib` subdirectory of the Ghostscript source distribution.

`font2c.ps`
  Convert a PostScript Type 0 or Type 1 font to C code that can be compiled and linked into Ghostscript; see the documentation on fonts for how to do this.

`gs_agl.ps`
  Contains the mapping from Adobe glyph names to Unicode values, used to support TrueType fonts.

`gs_cet.ps`
  Sets a number of alternate defaults to make Ghostscript behave more like Adobe CPSI. Useful for running the CET conformance test suite.

`gs_cmdl.ps`
  This file is not used yet. Eventually it will replace C code that parses the Ghostscript command line.

`gs_diskf.ps`
  This file implements the `-dDISKFONTS` feature (`diskfont.dev`). See the the usage documentation for a description of this feature.

`gs_diskn.ps`
  This file implements the `%disk` IODevice (`diskn.dev` feature). See the the language documentation for information on the use of the %disk# devices. These PostScript modifications primarily perform the searching of all Searchable file systems in a defined SearchOrder when a file reference does not contain an explicit %device% specifier (such as `%os%` or `%disk0`%). This is required to emulate undocumented behaviour of Adobe PostScript printers that have a disk and was experimentally determined.

`gs_fform.ps`
  A usable but imperfect PostScript implementation of Form caching.

`gs_kanji.ps`
  This file provides support for the Wadalab free Kanji font. It is not included automatically in any configuration.

`gs_pdfwr.ps`
  This file contains some patches for providing information to the `pdfwrite` driver. It is included only if the `pdfwrite` driver is included.

`gs_pfile.ps`
  This file provides runtime support for packed fonts. It is not included automatically in any configuration.

`gs_rdlin.ps`
  A tiny patch for systems with built-in readline support.

`ht_ccsto.ps`
  A default stochastic CMYK halftone. This file is in the public domain.

`stcolor.ps`
  Configure the (Epson) `stcolor` driver

## PDF-specific system files

These files are found in the `lib` subdirectory of the Ghostscript source distribution.

`gs_l2img.ps`
  The `ProcSet` that emulates the PostScript Level 2 "`image`" operator on Level 1 systems.

`pdf_base.ps`
  Utilities for interpreting PDF objects and streams.

`pdf_draw.ps`
  The interpreter for drawing-related PDF operations.

`pdf_font.ps`
  Code for handling fonts in PDF files.

`pdf_main.ps`
  Document- and page-level control for interpreting PDF files.

`pdf_ops.ps`
  Definitions for most of the PDF operators.

`pdf_rbld.ps`
  Contains procedures for bebuilding damaged PDF files.

`pdf_sec.ps`
  PDF security (encryption) code.

`pdfopt.ps`
  A PDF linearizer ("optimizer").

`pdfwrite.ps`
  Support for writing PDF files. Currently used only by the linearizer, but potentially useful for other kinds of PDF-processing utilities.

`gs_icc.ps`
  Support for ICC color profiles. These are not a standard PostScript feature, but are used in the PDF interpreter, as ICC profiles may be embedded in PDF files.

`opdfread.ps`
  Postscript procset for reading an ordered PDF file. This is used by the `ps2ps`, `ps2ps2` scripts.

`EndOfTask.ps`
  An auxiliary file used by the `ps2write` script.

`PDFX_def.ps`
  This is a sample prefix file for creating a PDF/X-3 document with the `pdfwrite` device.

`PDFA_def.ps`
  This is a sample prefix file for creating a PDF/A document with the `pdfwrite` device.

## Display PostScript-specific system files

These files are found in the `lib` subdirectory of the Ghostscript source distribution.

`gs_dpnxt.ps`
  NeXT Display PostScript extensions.

`gs_dps.ps`, `gs_dps1.ps`, `gs_dps2.ps`
  `gs_init.ps` reads these in if the `dps` feature is included in the configuration. They provide support for various Display PostScript and Level 2 features.

## Art and examples

These files are found in the `examples` subdirectory of the Ghostscript source distribution.

`alphabet.ps`
  Prints a sample alphabet at several different sizes.

`annots.pdf`
  A sample file with a wide variety of PDF "annotations".

`cheq.ps`
  A chessboard "font" used by chess.ps (obtained from Adobe).

`chess.ps`
  A black-and-white chessboard.

`colorcir.ps`
  A set of nested ellipses made up of colored bars.

`doretree.ps`
  A 3-D image produced by a modeling program. This file is in the public domain.

`escher.ps`
  A colored version of a hexagonally symmetric Escher drawing of interlocking butterflies. Can be printed on monochrome devices, with somewhat less dramatic results.

`golfer.eps`
  A gray-scale picture of a stylishly dressed woman swinging a golf club.

`grayalph.ps`
  Grayscaled text test pattern.

`ridt91.eps`
  The RIDT '91 logo. Note that since this is an EPS file, you will have to add "`-c showpage`" at the end of the command line to print it or convert it to a raster file.

`snowflak.ps`
  A rectangular grid of intricate colored snowflakes. (May render very slowly.)

`tiger.eps`
  A dramatic colored picture of a tiger's head.

`vasarely.ps`
  Colored rectangles and ellipses inspired by Victor Vasarely's experiments with tilting circles and squares.

`waterfal.ps`
  Prints text in a variety of different sizes, to help evaluate the quality of text rendering.

## Utilities

For more information on these utility programs, see the comments at the beginnings of the files. The ones marked (*) have batch files or shell scripts of the same name (like `bdftops` and `bdftops.bat`) to invoke them conveniently.

These files are found in the `lib` subdirectory of the Ghostscript source distribution.

`addxchar.ps`
  A utility to add Central European and other Adobe extended Latin characters to a Type 1 font.

`align.ps`
  A test page for determining the proper margin and offset parameters for your printer.

`bdftops.ps` *
  A utility for converting BDF fonts to outline form: see the documentation on fonts.

`bench.ps`
  A file useful for running benchmarks.

`caption.ps`
  A file for putting a caption in a box at the bottom of each page, useful for trade show demos.

`cid2code.ps`
  A utility for creating maps from CIDs to Unicode, useful when substituting a TrueType font for an Adobe font.

`docie.ps`
  An emulation of the CIE color mapping algorithms.

`errpage.ps`
  A file that you can put in front of your own files to make Ghostscript (or a PostScript printer) produce an informative error page if something goes wrong during the processing of your file(s).

`font2pcl.ps`
  A utility to write a font as a PCL bitmap font.

`gslp.ps` *
  A utility for doing "line printing" of plain text files.

`gsnup.ps`
  A file that you can concatenate in front of (very well-behaved) PostScript files to do N-up printing. It is deliberately simple and naive: for more generality, use `psnup` (which, however, requires DSC comments).

`jispaper.ps`
  A file that makes the `b0` through `b6` procedures refer to JIS B paper sizes rather than ISO B.

`impath.ps`
  A utility for reconstructing outlines from bitmap images, used by `bdftops`.

`landscap.ps`
  A file that you can put in front of your own files to get them rendered in landscape mode.

`level1.ps`
  A file that turns off any Level 2 features.

`mkcidfm.ps`
  A utility for creating a CID font mapping table `cidfmap` from fonts found in a specified directory.

`packfile.ps`
  A utility for compressing fonts into a single file.

`pdf2dsc.ps`
  A utility to read a PDF file and produce a DSC "index" file.

`pf2afm.ps` *
  A utility for producing AFM files from PFA, PFB, and optionally PFM files.

`pfbtopfa.ps` *
  A utility to convert PFB (binary) font files to PFA (text) format.

`prfont.ps`
  A utility to print a font catalog.

`printafm.ps`
  A utility to print an AFM file on standard output.

`ps2ai.ps`
  A utility for converting an arbitrary PostScript file into a form compatible with Adobe Illustrator. NOTE: `ps2ai` doesn't work properly with Adobe's Helvetica-Oblique font, and other fonts whose original `FontMatrix` involves skewing or rotation.

`ps2ascii.ps` *
  A utility for extracting the ASCII text from PostScript source files. It redefines many operators. For more information, see the comments in the file.

`ps2epsi.ps` *
  A utility for converting an arbitrary PostScript file into EPSI form.

`quit.ps`
  A file containing just the word "`quit`". (The `-c` switch now makes this unnecessary; this file exists for backward compatibility.)

`rollconv.ps`
  A utility for converting files produced by Macromedia's `Rollup` program to a Type 0 form directly usable by Ghostscript.

`showpage.ps`
  A file containing just the word "`showpage`". (The `-c` switch now makes this unnecessary; this file exists for backward compatibility.)

`stocht.ps`
  A file that installs the StochasticDefault halftone as the default, which may improve output quality on inkjet printers. See the file for more information.

`viewcmyk.ps`
  A utility for displaying CMYK files.

`viewgif.ps`
  A utility for displaying GIF files.

`viewjpeg.ps`
  A utility for displaying JPEG files.

`viewmiff.ps`
  A utility for displaying MIFF files.

`viewpbm.ps`
  A utility for displaying PBM/PGM/PPM files.

`viewpcx.ps`
  A utility for displaying PCX files.

`waterfal.ps`
  A utility to print a "waterfall" of fonts at different sizes.

## Development tools

These files are found in the `lib` subdirectory of the Ghostscript source distribution.

`acctest.ps`
  A utility that checks whether the interpreter enforces access restrictions.

`decrypt.ps`
  A utility for decrypting the `eexec` section of a font.

`dumphint.ps`
  A utility for printing (to stdout) linearized PDF hint tables in an easy to read form. Scripts `dumphint` and `dumphint.bat` are provided for the user's convenience.

`image-qa.ps`
  A comprehensive test of the image display operators.

`markpath.ps`
  A utility for showing the points on a path.

`pcharstr.ps`
  A utility for printing out the `CharStrings` and `Subrs` in a Type 1 font.

`ppath.ps`
  A couple of utilities for printing out the current path, for debugging.

`pphs.ps`
  A utility to print the Primary Hint Stream of a linearized PDF file.

`traceimg.ps`
  Trace the data supplied to the `image` operator.

`traceop.ps`
  A utility for tracing uses of any procedure or operator for debugging.

`type1enc.ps`
  The Type 1 font format encryption and decryption algorithms, written in PostScript.

`uninfo.ps`
  Some utilities for printing out PostScript data structures.

`unprot.ps`
  A prologue to disable access checking.

`viewps2a.ps`
  A utility for displaying the output of `ps2ascii.ps`.

`wftopfa.ps`
  Convert a Wadalab (Japanese) base font to `.PFA` (or `.PFB`) format.

`winmaps.ps`
  A utility for creating mappings between the Adobe encodings and the Microsoft Windows character sets.

`wrfont.ps`
  A utility for writing out an unprotected Type 1 font, such as the standard Ghostscript fonts.

`zeroline.ps`
  A utility for testing how interpreters handle zero-width lines.

## Odds and ends

These files are found in the `lib` subdirectory of the Ghostscript source distribution.

`jobseparator.ps`
  Convience file containing a job separator sequence for use when passing files with -dJOBSERVER.

`lines.ps`
  A test program for line joins and caps.

`markhint.ps`
  Draw the hints for a Type 1 font.

`showchar.ps`
  Show a character's outline and rasterized forms.

`stcinfo.ps`
  Print and show parameters of the (Epson) `stcolor` driver.

`type1ops.ps`
  The Type 1 font format opcodes.

Copyright © 2000-2006 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 http://www.artifex.com/ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

Ghostscript version 8.60, 1 August 2007