|Introduction | Sustainability Factors | Content Categories | Format Descriptions | Contact|
|Full name||PostScript Format Family|
PostScript is primarily known as a page description language used in the electronic publishing and desktop publishing business. However, it is also a general-purpose programming language with a focus on support for two-dimensional graphic design. As a language, PostScript has a structure that supports efficient direct interpretation of the language at runtime rather than requiring a separate compilation stage before the code can be executed. Soon after the release of the PostScript language by Adobe Systems Incorporated in 1984, Steve Jobs of Apple persuaded Adobe to adapt it to drive laser printers. In March 1985, the Apple LaserWriter was the first printer to have an embedded interpreter for the PostScript language. Many laser printers were based on PostScript through the 1990s. The different aspects of PostScript are highlighted in the Basic Ideas chapter of the PostScript Language Reference Manual, "Obtaining a complete understanding of the PostScript language requires considering it from several points of view:
This format description focuses on the fourth aspect of PostScript, as an interchange format. The PostScript Language Document Structuring Conventions Specification (DSC) (originally published as Appendix G of the PostScript Language Reference Manual and later published separately) supports the use of PostScript as an application-independent file format for documents. DSC provides conventions for exposing the structure of the file and its characteristics through PostScript comments, which begin with "%". A PostScript page-description file is recognized by its first line, which begins "%!PS-Adobe-" and continues with a version number. Other DSC comment lines begin with two percent characters ("%%") and a keyword. Some keywords are followed immediately by a colon (":") and intended to convey options or arguments. For example, each page should begin with "%%Page:" followed by two arguments, a page label and a sequential page number. Such formalized comments provide an interoperable machine-readable mechanism to convey information to systems other than PostScript interpreters.
The PostScript language is proprietary to Adobe, but fully documented in the PostScript Language Reference Manual, most recently in version 3, published in 1999. Adobe staff have indicated in user forums, e.g., in PostScript verses PDF, a thread starting in September 2007 in the PrintPlanet Forum, that Adobe has no intention of producing a fourth version of the language. Enhancements to Adobe's imaging model, including support for layers and transparency, have been made to the PDF format and not to the PostScript language. In most page-description contexts, members of the PDF Format Family have superseded PostScript. See PostScript vs. PDF for an explanation from Adobe which states, "When you hear people say that PDF is a 'replacement' for PostScript, what they most likely mean is that PDF is a replacement for saved PostScript files and EPS files. PDF is not a replacement for the PostScript language or the PostScript processors that live inside of printers, imagesetters, and platesetters."
The usual file extension for a PostScript document is .ps. The PRONOM database at the UK National Archives identifies five chronological versions of .ps file, based on the DSC version declared in the first line of the file: versions 1.0, 2.0, 2.1, 3.0, 3.1. Each version introduced a number of important structuring comments.
A special subtype of PostScript file is an Encapsulated PostScript File (EPS). An EPS file employs the PostScript language to represent a single rectangular graphic. As stated in the PostScript Language Reference Manual, "An encapsulated PostScript (EPS) file is a PostScript program describing at most a single page in a form that can be imported by other applications to embed within a containing document." An illustration encoded as an EPS file can be embedded in a PostScript document file.
An additional use of PostScript is referred to as Display PostScript (DPS). DPS employed a graphics engine that uses the PostScript imaging model and language to generate on-screen graphics. The NeXT computer used DPS throughout its history (1985-1997) and DPS ran on Unix workstations during the same period.
|Production phase||May be used as a final-state format for sending a document to a printer. May be used as a middle-state format to transfer 2-D content from one application to another. Since PostScript is a programming language, it can be used as an initial-state format by programmers who choose to define a diagram, or other illustration, using vector graphics directly.|
|Relationship to other formats|
|Has subtype||Various chronological versions of the PostScript (.ps) File format, not described separately on this site at this time. See Useful References below for links to PRONOM entries for five chronological versions.|
|Has subtype||EPS_3, Encapsulated PostScript (.eps), version 3.x. Limited to a single rectangular "page" intended for a vector graphic illustration for placement in page-based documents in any format.|
|Has subtype||Other chronological versions of EPS, not described separately at this site.|
|Has subtype||Display Postscript, a variant of PostScript used to manage window display on NeXT and Unix workstation monitors in the 1980s and 1990s. Display Postscript is not described separately at this site.|
|May contain||EPS_3, Encapsulated PostScript (.eps), version 3.x. A PostScript document file may incorporate an embedded illustration in EPS format.|
|LC experience or existing holdings||The Library of Congress has a few Encapsulated PostScript (EPS) files in its collections, acquired by the Prints and Photographs division in association with other content. The Library is not aware of any PostScript files for textual materials in its collections.|
|LC preference||The Library of Congress Recommended Formats Statement (RFS) includes EPS as a preferred format for vector graphic images and an acceptable format for raster images. For page-layout formats for textual documents, high-quality PDFs (particularly PDF/UA and PDF/A) are preferred.|
PostScript is a proprietary but publicly documented programming language and page-descripton language from Adobe Systems Incorporated.
The latest version of the language specification is PostScript Language Reference, Third Edition, published in 1999. This manual makes clear which PostScript operators and features were added in which version (aka Language Level). The previous version, PostScript Language Reference, Second Edition was published in 1990. This manual included a description of Display Postscript, omitted in the the third edition.
The latest published edition, version 3.0, of the Document Structuring Conventions Specification was published in 1992 as Technical Note #5001. This was current as of 1999, when the third edition of the PostScript Language Reference was published. This manual identifies which structuring comments were introduced in this and earlier versions. The PostScript Technology Center and the Adobe PostScript software development kit (SDK) archive provide access to these and other documents supporting use of PostScript.
PostScript has been widely used in commercial printing systems since the mid-1980s. Laser printers used with personal computers almost always employed PostScript through the 1990s. The Wikipedia entry for PostScript, indicates, "By 2001, few lower-end printer models came with support for PostScript, largely due to growing competition from much cheaper non-PostScript ink jet printers, and new software-based methods to render PostScript images on the computer, making them suitable for any printer; PDF, a descendant of PostScript, provides one such method, and has largely replaced PostScript as de facto standard for electronic document distribution." In 2017, the Macintosh operating system has built-in support for rendering PostScript files in the Preview application, and for saving print output as a PostScript file. For Windows, Microsoft supplies the Microsoft PostScript Printer Driver but this driver is not shipped with Windows by default.
The use of PostScript as an interchange format for documents has been most common for scientific articles. See the explanation of PostScript Variants available as output from the arXiv repository of physics preprints. In most contexts, direct use of PostScript as an interchange format for documents has been superseded by use of PDF.
A key resource that supported the use and adoption of PostScript is Ghostscript, an interpreter for the PostScript language. According to the Wikipedia entry on Ghostscript, Ghostscript was originally written by L. Peter Deutsch for the GNU Project (an early example of a large-scale collaborative effort for building free software), and released under the GNU General Public License in 1986. Among other functions, Ghostscript can be used as a raster image processor (RIP) for converting PostScript page descriptions for transmission to raster printers without embedded PostScript support. Ghostscript can also be used to convert PostScript documents to PDF. Ghostscript was ported to many operating systems, including Unix-like systems, classic Mac OS, OpenVMS, Plan 9, MS-DOS, FreeDOS, OS/2, Atari TOS, AmigaOS, and Microsoft Windows.
Page Description Languages | PostScript lists many resources related to PostScript, including software tools. An important tool is Adobe Acrobat Distiller, which can convert PostScript documents to PDF. The Wikipedia entry for Encapsulated PostScript (EPS) lists applications that support EPS.
|Licensing and patents||
There appear to be no licensing problems associated with creating or editing PostScript files. However, in practice, use of a PostScript interpreter, usually embedded in a software application or printer system, is essential for display, printing, or other use. Adobe embeds a PostScript interpreter into its own products and has made a PostScript Software Development Kit as well as a print engine available for license by commercial partners. GhostScript has been available since 1986 as an open source PostScript interpreter, but in 2017, commercial distribution requires a license, according to the Wikipedia entry for GhostScript.
In common with other programming languages, PostScript files are plain text files. It is readable by humans. However, since PostScript is a fully functional programming language, and can be used to describe graphics in very complex ways, in practice, a PostScript interpreter is essential to render the file for viewing.
Certain pre-defined metadata elements can be supplied as PostScript comments, as specified in DSC (PostScript Language Document Structuring Conventions Specifications). These are intended primarily for use by PostScript printing applications to manage workflow. Three of the elements provide contextual metadata of broader use: %%Creator, to identify the creating application; %%Title, for a text title for the document; %%CreationDate, for a text date (in no particular form).
Neither the PostScript language nor the DSC specification provides a standard mechanism for incorporating rich descriptive or contextual metadata in an externally specified format.
|Technical protection considerations||The PostScript language provides no built-in support for encryption or other form of technical protection.|
|Normal rendering||Good support for panning, zooming, and printing. No support for layers or transparency.|
|Clarity (high image resolution)||Scalable.|
|Color maintenance||PostScript provides rich support for defining colorspaces and using CIE-defined colorspaces, including operations for switching between colorspaces as the image is drawn. PostScript does not support the use of ICC Profiles.|
|Support for vector graphics, including graphic effects and typography||Rich support for vector graphics. The power and the flexibility of the PostScript language has been exploited in software for freehand illustration, for diagrams and charts, and for creative use of typography.|
|Support for multispectral bands||Not applicable.|
|Normal rendering||PostScript is designed for preparing page-oriented documents for printing. Scaling, zooming, printing are expected functionalities for PostScript viewers. Indexing the full text content of a PostScript document cannot be guaranteed.|
|Integrity of document structure||PostScript only represents positions of characters on the page. There is no encoding of document structure such as paragraphs and headings.|
|Integrity of layout and display||PostScript is designed to represent the layout of page-oriented documents.|
|Support for mathematics, formulae, etc.||Can be represented by graphics.|
|Internet Media Type||application/postscript
||Used as an example in RFC 2046: Multipurpose Internet Mail Extensions (MIME) | Part Two: Media Types (alternative link RFC 2046). RFC 2046 was published in 1996.|
||For PostScript complying with Document Structuring Conventions (DSC) 1.0 See http://www.nationalarchives.gov.uk/PRONOM/x-fmt/91.|
||For PostScript complying with Document Structuring Conventions (DSC) 2.0 See http://www.nationalarchives.gov.uk/PRONOM/x-fmt/406.|
||For PostScript complying with Document Structuring Conventions (DSC) 2.1 See http://www.nationalarchives.gov.uk/PRONOM/x-fmt/407.|
||For PostScript complying with Document Structuring Conventions (DSC) 3.0 See http://www.nationalarchives.gov.uk/PRONOM/x-fmt/408.|
||For PostScript complying with Document Structuring Conventions (DSC) 3.1. See http://www.nationalarchives.gov.uk/PRONOM/fmt/501.|
||For Encapsulated PostScript (EPS) version 3.0. See http://www.nationalarchives.gov.uk/PRONOM/fmt/124.|
||For Encapsulated PostScript (EPS) version 2.0. See http://www.nationalarchives.gov.uk/PRONOM/fmt/123.|
||For Encapsulated PostScript (EPS) version 1.2. See http://www.nationalarchives.gov.uk/PRONOM/fmt/122.|
|Wikidata Title ID||Q218170
An important characteristic of the PostScript language and a key reason for its adoption for desktop publishing was its innovative capability for handling fonts. As stated in Adobe's Q&A on PostScript and fonts, "Type 1 fonts are a specialized form of PostScript program and are the original file format used for type display on all PostScript printers. The PostScript language was later extended to provide support for the later TrueType and OpenType font standards. Any new Adobe PostScript language device made today supports all three font standards."
As a programming language, PostScript is concatenative and stack-oriented. The Wikipedia article on stack-oriented programming language includes some examples of PostScript code. PS Files the PostScript format for Graphics and Text provides examples of PostScript together with corresponding bitmapped representations.
Although PostScript is not usually used as a general-purpose programming language, it has been used for complex mathematical computations. The TeX community has a collection of macros known as PSTricks, which are routines written in PostScript that can be embedded in TeX documents. One example is PST-ODE, a module for solving initial value problems for sets of ordinary differential equations.
Version 3.0 of DSC provided an extension mechanism, known as Open Structuring Conventions, using a registry for comment prefixes that could be applied for by vendors. The compilers of this resource are not aware of the level of use of this feature. Comments welcome.
A Jan 2017 post from The Register, We don't want to alarm you, but PostScript makes your printer an attack vector, publicizes the vulnerability of networked PostScript printers. The potential for damaging exploits based on communication between computers and PostScript printers has been understood for years, but was not a serious threat before PostScript printers were networked and accessible over the Internet. See also PostScript page from Hacking Printers.
Introduced in 1985, the PostScript language has been extended twice to adapt to new imaging technologies and system environments. While these extensions introduced significant new functionality and flexibility to the language, the basic imaging model remains unchanged. The result is an organization into three Language Levels: Level 1 (the 1985 version); Level 2 (1990); and Level 3 (1999). Each Language Level encompasses all features of previous Language Levels as well as new features. Thus, for example, a feature identified in the reference manual as included in "Language Level 2" is expected to be available in all Language Level 3 implementations as well.
In a discussion thread on PostScript verses PDF starting in September 2007 in the PrintPlanet Forum, Dov Isaacs of Adobe said, " there is not a PostScript Language Level 4 sitting on disk somewhere waiting for marketing to give a signal. Beginning with PDF 1.4, all additions to the Adobe imaging model went into PDF and not PostScript. To be very clear, Adobe will continue to license PostScript technology through our EOM partners as long as there is a demand for it from their customers. We will also continue support a gateway from PostScript to PDF via our Distiller technology in Acrobat. Adobe will continue to support EPS as a 'legacy' graphics format for import of non-color managed, opaque graphical data into Adobe applications (such as InDesign and Illustrator). Although we certain do not recommend that new graphical content be stored in EPS format (except to satisfy the need to import data into page layout programs that aren't quite PDF-centric -- no need to mention names here!), our user base should feel comfortable that there is no need to worry about a need to convert their very sizable libraries of EPS-based graphic assets."