| Document Structuring Conventions |
Article Index for Document |
Website Links For Document |
Information AboutDocument Structuring Conventions |
| CATEGORIES ABOUT DOCUMENT STRUCTURING CONVENTIONS | |
| postscript | |
|
The need for a structuring convention arises since PostScript is a Turing-complete programming language. There is thus no guaranteed method to do things like determining how many pages long a given document is or how large a given page is, or how to skip to a particular page. The addition of structure, with DSC comments exposing that structure, help provide a way for, e.g., an intelligent Print Spooler the ability to rearrange the pages for printing, or a way for a Page Layout Program to find out the Bounding Box of a PostScript file used as a graphic image. Collectively, any such program that take PostScript files as input data is called a ''document manager''. Some DSC comments serve a second function, specifying a way to tell the document manager to do certain things, like inserting a font or other PostScript code (collectively called ''resources'') into the file. DSC comments that serve this second function are more akin to Preprocessing Directive s and are not purely comments, and thus require a functioning document manager to have an effect. DSC is the basis for Encapsulated PostScript , which are conforming documents with further restrictions. The set of DSC comments can be expanded by a mechanism called the Open Structuring Conventions, which, together with the EPS specification, form the basis of early versions of the Adobe Illustrator Artwork file format. DSC AT A GLANCE The basic premise of DSC is the separation of ''prolog'' (static definitions) and ''script'' ( Code that affects job-specific printed output), plus the disallowing of certain PostScript Operator s deemed inappropriate for Page Description s. This ensures a basic level of predictability in the PostScript code, thus forming the basis of document manageability. An optional, additional layer of document manageability is provided by separating the script into a ''document setup'' section, zero or more functionally independent ''pages'', and an optional ''trailer'' (cleanup code). (“Zero pages” in DSC usually means “one page without the use of the PostScript ‘showpage’ operator.) The functional independence between pages, plus the disallowing of more PostScript operators in the pages section, form the basis for ''page independence'', which allows pages to be reordered, and independently and randomly accessed. This imposed structure is then exposed by delimiting the PostScript file with ''DSC comments'', which normally begin with two percent signs followed by a keyword. Some keywords need to be followed by a colon, an optional space character, and then a series of Argument s. Finally, the document is marked as conforming by starting it with a comment starting with “%!PS-Adobe-” followed by the DSC version number. Sections of reusable PostScript code can be modularized into ''procsets'' (procedure sets, corresponding to Function Libraries in other programming languages), in order to ease the generation of PostScript code. Procsets and other PostScript resources (for example, fonts) can be omitted from the PostScript file itself, and externally referenced by a directive-like DSC comment; such external referencing, however, can only work with a document manager that understands such DSC comments. DSC version 3.0 was released on September 25 , 1992 . The specification states, "Even though the DSC comments are a layer of communication beyond the PostScript language and do not affect the final output, their use is considered to be good PostScript language programming style." Thus, most PostScript-producing programs output DSC-conformant comments along with the code, although some such programs do not actually produce conforming documents. EXAMPLE A DSC-conforming document (this one generated by Dvips ) might begin thusly: %!PS-Adobe-2.0 %%Creator: dvips(k) 5.95a Copyright 2005 Radical Eye Software %%Title: texput.dvi %%Pages: 1 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%DocumentPaperSizes: Letter %%EndComments which has the following meaning:
SEE ALSO REFERENCES |
|
|