home *** CD-ROM | disk | FTP | other *** search
- Copyright (C) 1989-1992 Aladdin Enterprises. All rights reserved.
- Distributed by Free Software Foundation, Inc.
-
- This file is part of Ghostscript.
-
- Ghostscript is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY. No author or distributor accepts responsibility
- to anyone for the consequences of using it or for whether it serves any
- particular purpose or works at all, unless he says so in writing. Refer
- to the Ghostscript General Public License for full details.
-
- Everyone is granted permission to copy, modify and redistribute
- Ghostscript, but only under the conditions described in the Ghostscript
- General Public License. A copy of this license is supposed to have been
- given to you along with Ghostscript so you can know your rights and
- responsibilities. It should be in a file named COPYING. Among other
- things, the copyright notice and this notice must be preserved on all
- copies.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- This file, language.doc, describes the Ghostscript language.
-
- For an overview of Ghostscript and a list of the documentation files, see
- README.
-
- The Ghostscript interpreter, except as noted below, is intended to execute
- properly any source program written in a language defined by reference to
- the December 1990 printing of the PostScript Language Reference Manual
- (Second Edition) published by Addison-Wesley (ISBN 0-201-18127-4). The
- Ghostscript language includes the following elements of the PostScript
- (TM) language:
-
- - The full PostScript Level 1 language, as also defined in the
- first edition of the PostScript Language Reference Manual, ISBN
- 0-201-10174-2, Addison-Wesley, 1985.
-
- - The CMYK color, file system, version 25.0 language, and
- miscellaneous additions listed in sections A.1.4, A.1.6, A.1.7, and A.1.8
- of the Second Edition respectively.
-
- - The Display PostScript extensions listed in section A.1.3 of the
- Second Edition, but excluding the operators listed in section A.1.2, and
- also excluding setbbox, xshow, xyshow, and yshow. These extensions are
- only available if the dps feature was selected at the time that
- Ghostscript was compiled and linked.
-
- - A few other PostScript Level 2 operators, listed below.
-
- Ghostscript also includes a number of operators defined below that are not
- in the PostScript language.
-
- Stub facilities
- ---------------
-
- The following operators, while provided in the current release, have only
- a partial or dummy implementation.
-
- Character and font operators:
- cshow, rootfont, setcachedevice2
-
- Graphics state operators:
- currentblackgeneration, currentcmykcolor, currentcolorscreen,
- currentcolortransfer, currenthalftonephase, currentundercolorremoval,
- setblackgeneration, setcmykcolor, setcolorscreen,
- setcolortransfer, sethalftonephase, setundercolorremoval,
- currenthalftone, sethalftone,
- setbbox
-
- Interpreter parameter operators:
- setucacheparams, ucachestatus
-
- Path construction operators:
- ucache
-
- Virtual memory operators:
- currentshared, scheck, setshared, setvmthreshold, shareddict,
- SharedFontDirectory, vmreclaim
-
- Level 2 operators
- -----------------
-
- The following PostScript Level 2 operators are available in
- Ghostscript. Unless otherwise noted, these are only available if the
- level2 feature was selected at the time that Ghostscript was compiled
- and linked.
-
- File operators:
- filter (not all filters are implemented, and most of the
- implemented ones are only available if the filter feature was
- selected when Ghostscript was built)
-
- Graphics state operators:
- currentcolor, currentcolorspace, setcolor, setcolorspace
- (for DeviceGray, DeviceRGB, and DeviceCMYK only)
- currentstrokeadjust, setstrokeadjust (even if level2 is
- not selected)
-
- In addition, Ghostscript supports the following Level 2 facilities:
-
- - Use of a string with the status operator (even if level2 is
- not selected);
-
- - Use of a dictionary with the image and imagemask operators;
-
- - Use of a string or a file as data source with the image,
- imagemask, and colorimage operators (even if level2 is not selected).
-
- Ghostscript-specific additions
- ==============================
-
- Miscellaneous
- -------------
-
- ^Z is counted as whitespace.
-
- run can take either a string or a file as its argument. In the former
- case, it uses findlibfile to open the file (searching directories as
- needed). In the latter case, it just runs the file, closing it at the
- end, and trapping errors just as for the string case.
-
- Mathematical operators
- ----------------------
-
- <number> arccos <number>
- Computes the arc cosine of a number between -1 and 1.
-
- <number> arcsin <number>
- Computes the arc sine of a number between -1 and 1.
-
- Dictionary operators
- --------------------
-
- <dict> <integer> setmaxlength -
- Changes the capacity of a dictionary, preserving its
- contents. Causes a dictfull error if the requested
- capacity is less than the current number of occupied
- entries.
-
- String operators
- ----------------
-
- <string|name|other> <patternString> stringmatch <boolean>
- Determines whether the string or name matches the given
- pattern. In the pattern, `*' matches any substring of
- the string, `?' matches any single character, and `\'
- quotes the next character. If the first argument is not
- a string or name, stringmatch returns true if
- patternString is a single *, and false otherwise.
-
- <state> <fromString> <toString> type1encrypt <newState> <toSubstring>
- Encrypts fromString according to the algorithm for Adobe
- Type 1 fonts, writing the result into toString.
- toString must be at least as long as fromString or a
- rangecheck error occurs. state is the initial state of
- the encryption algorithm (a 16-bit non-negative
- integer); newState is the new state of the algorithm.
-
- <state> <fromString> <toString> type1decrypt <newState> <toSubstring>
- Decrypts fromString according to the algorithm for Adobe
- Type 1 fonts, writing the result into toString. Other
- specifications are as for type1encrypt.
-
- Relational operators
- --------------------
-
- <number|string> <number|string> max <number|string>
- Returns the larger of two numbers or strings.
-
- <number|string> <number|string> min <number|string>
- Returns the smaller of two numbers or strings.
-
- File operators
- --------------
-
- <string> findlibfile <foundstring> <file> true or <string> false
- Opens the file of the given name for reading. If the file
- cannot be opened using the supplied name, searches
- through directories as described in use.doc. If the
- search fails, findlibfile simply pushes false on the
- stack and returns, rather than causing an error.
-
- <file> <integer> unread -
- Pushes back the last-read character onto the front of the
- file. If the file is only open for writing, or if the
- integer argument is not the same as the last character
- read from the file, causes an ioerror error. May also
- cause an ioerror if the last operation on the file was not
- a reading operation.
-
- <file> <device> writeppmfile -
- Writes the contents of the device, which must be an image
- device, onto the file, in Portable PixMap (ppm) format.
- Does not close the file.
-
- Path operators
- --------------
-
- <x> <y> <width> <height> rectappend -
- <numarray> rectappend -
- <numstring> rectappend -
- Appends a rectangle or rectangles to the current path, in
- the same manner as rectfill, rectclip, etc. Only
- defined if the dps option is selected.
-
- Filters
- -------
-
- Ghostscript supports all standard filters except DCTEncode and
- DCTDecode. Ghostscript does not support the use of a procedure as a
- data source or sink, only a file or a string. In addition,
- Ghostscript supports two non-standard filters:
-
- <file|string> <seed_integer> /eexecDecode filter <file>
- Creates a filter for decrypting data that has been
- encrypted using eexec encryption as described in the
- Adobe Type 1 Font Format documentation. The
- seed_integer must be 55665 for proper operation.
-
- <file|string> <hex_boolean> /PFBDecode filter <file>
- Creates a filter that decodes data in .PFB format, the
- usual semi-binary representation for Type 1 font files
- on IBM PC and compatible systems. If hex_boolean is true,
- binary packets are converted to hex; if false, binary
- packets are not converted.
-
- Miscellaneous operators
- -----------------------
-
- - currenttime <number>
- Returns the current value of a continuously-running timer,
- in minutes. The initial value of this timer is undefined.
-
- <string> getenv <string> true or false
- Looks up a name in the shell environment. If the name is
- found, returns the corresponding value and true; if the
- name is not found, returns false.
-
- <name> <array> makeoperator <operator>
- Constructs and returns a new operator that is actually the
- given procedure in disguise. The name is only used for
- printing. The operator has the executable attribute.
-
- <string> <boolean> setdebug -
- If the Ghostscript interpreter was built with the DEBUG
- flag set, sets or resets any subset of the debugging
- flags normally controlled by -Z in the command line.
- Has no effect otherwise.
-
- Device operators
- ----------------
-
- <device> copydevice <device>
- Copies a device.
-
- <index> getdevice <device>
- Returns a device from the set of devices known to the
- system. The first device, which is default, is numbered
- 0. If the index is out of range, causes a rangecheck
- error.
-
- <matrix> <width> <height> <palette> makeimagedevice <device>
- Makes a new device that accumulates an image in memory.
- matrix is the initial transformation matrix: it must be
- orthogonal (i.e., [a 0 0 b x y] or [0 a b 0 x y]).
- palette is a string of 2^N or 3*2^N elements, specifying
- how the 2^N possible pixel values will be interpreted.
- Each element is interpreted as a gray value, or as RGB
- values, multiplied by 255. For example, if you want
- a monochrome image for which 0=white and 1=black, the
- palette should be <ff 00>; if you want a 3-bit deep
- image with just the primary colors and their complements
- (ignoring the fact that 3-bit images are not supported),
- the palette might be <000000 0000ff 00ff00 00ffff
- ff0000 ff00ff ffff00 ffffff>. At present,
- the palette must contain exactly 2 or 256 entries,
- and must contain an entry for black and an entry
- for white; if it contains any entries that aren't black,
- white, or gray, it must contain at least the six primary
- colors (red, green, blue, and their complements cyan,
- magenta, and yellow); aside from this, its contents are
- arbitrary. (4-entry or 16-entry palettes, corresponding
- to 2- or 4-bit pixels, may be supported eventually.)
- Alternatively, palette can be null. This is interpreted
- as 32-bit-per-pixel color, where the four bytes of each
- pixel are respectively unused, R, G, and B.
- Note that one can also make an image device (with the same
- palette as an existing image device) by copying a device
- using the copy operator.
-
- <device> <index> <string> copyscanlines <substring>
- Copies one or more scan lines from an image device into a
- string, starting at a given scan line in the image.
- The data is in the same format as for the image
- operator. Error if the device is not an image device or
- if the string is too small to hold at least one complete
- scan line. Always copies an integral number of scan
- lines.
-
- <device> setdevice -
- Sets the current device to the specified device. Also
- resets the transformation and clipping path to the
- initial values for the device.
-
- - currentdevice <device>
- Gets the current device from the graphics state.
-
- <device> devicename <string>
- Gets the name of a device.
-
- <device> <matrix> deviceinitialmatrix <matrix>
- Gets the initial matrix of a device, i.e., the one that
- defaultmatrix would return if the device were the
- current device.
-
- <device> getdeviceprops <mark> <name1> <value1> ... <namen> <valuen>
- Gets all the properties of a device. Currently defined
- names and values for all devices are:
- HWResolution [<float> <float>]
- X and Y resolution in pixels/inch.
- HWSize [<integer> <integer>]
- X and Y size in pixels.
- InitialMatrix [<6 floats>]
- Initial transformation matrix.
- Name <string>
- Read-only. The device name.
- For printers, the following are also defined:
- BufferSpace <integer>
- Buffer space for band lists, if the bitmap
- is too big to fit in RAM.
- MaxBitmap <integer>
- Maximum space for a full bitmap in RAM.
- OutputFile <string>
- () means send to printer directly,
- otherwise specifies the file name for
- output; a %d is replaced by the page #;
- on Unix systems, (|command) writes to a pipe
- PageCount <integer>
- Read-only. Counts the number of pages
- printed on the device.
-
- <mark> <name1> <value1> ... <namen> <valuen> <device>
- putdeviceprops <device>
- Sets properties of a device. May cause undefined,
- typecheck, rangecheck, or limitcheck errors.
-
- - flushpage -
- On displays, flushes any buffered output, so that it
- is guaranteed to show up on the screen; on printers,
- has no effect.
-
- Character operators
- -------------------
-
- <string> type1addpath -
- Adds the description of a character to the current path,
- and then optionally renders the character. The string
- argument is a scalable description encoded in Adobe Type
- 1 format. This operator is only valid in the context of
- a show operator, like setcharwidth and setcachedevice.
- It uses information from the current font, in addition
- to the argument.
-
- <font> <char> Type1BuildChar -
- This is not a new operator: rather, it is a name known
- specially to the interpreter. Whenever the interpreter
- needs to render a character (during a ...show,
- stringwidth, or charpath), it looks up the name
- BuildChar in the font dictionary to find a procedure to
- run. If it does not find this name, and if the FontType
- is 1, the interpreter instead uses the value (looked up
- on the dictionary stack in the usual way) of the name
- Type1BuildChar.
- The standard definition of Type1BuildChar is in gs_fonts.ps.
- Users should not need to redefine Type1BuildChar, except
- perhaps for tracing or debugging.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- PostScript is a trademark of Adobe Systems, Incorporated.
-