CONTENTS Title Page Copyright Page Preface Part I PostScript Extensions 1 Using PostScript Extensions 1.1 Using PostScript Extensions 1.2 Persistent and Volatile Parameters 1.2.1 Changing Volatile Parameters 1.2.2 Changing Persistent Parameters 1.3 Device Configuration 2 Media Selection 2.1 Loading Media 2.2 Defaults 2.2.1 Default Coordinate System 2.2.2 Default Unit Size 2.2.3 Default Clipping Path 2.3 Input Trays 2.3.1 Selecting an Input Tray by Location 2.3.2 Selecting an Input Tray by Content 2.3.3 Querying Input Trays 2.3.4 Input Tray Selection with Layup 2.4 Output Trays 2.4.1 Stacking Order 2.4.2 Output Positioning 3 Two-Sided Printing 3.1 Physical Duplex Operators 3.1.1 Setting Physical Duplex Mode 3.1.2 Setting Tumble Mode 3.1.3 Forcing a Page to Print on a New Sheet 3.2 Logical Duplex 4 Identification 4.1 Product 4.2 Hardware 4.2.1 Print Engine ID 4.2.2 Device Controller Firmware ID 4.3 Device Components 4.4 Device Name 4.5 Version 4.6 Revision 4.7 Job Name 5 Timeouts 5.1 Job Timeout 5.2 Page Timeout 5.3 Input Timeout 6 Printer Defaults 6.1 Password 6.2 Startup Page Status 6.3 Media Selection 6.3.1 Input Trays 6.3.2 Output Trays 6.3.3 Output Positioning 6.4 Timeouts 6.5 Scan Conversion of Fonts 6.6 DECimage for PostScript 6.7 Limitations 6.8 Control Parameters 6.8.1 DECimage Syntax 6.8.2 Setting the Punch Parameters 6.8.3 Setting the Sharpness 6.8.4 Setting the Dotsize 6.9 Using DECimage Control Operators 7 PostScript Extension Operators-Reference 11x17tray 3.875x7.5 3.875x7.5tray 4.125x9.5 4.125x9.5tray 7x9 7x9tray a3 a3tray a4 a4small a4tray a5 a5tray allowjobreset b4 b4tray b5 b5tray c5 c5tray checkconfiguration checkpassword colorimage componentids currentblackgeneration currentcacheparams currentcmykcolor currentcolorscreen currentcolortransfer currentpacking currentundercolorremoval DECimage DECimageparams defaultDECimage defaultDECimageparams defaultduplexmode defaultenvelopefeedsize defaultenvelopetraysize defaultjobtimeout defaultmansize defaultoutputpositioning defaultoutputtray defaultpagetimeout defaultpapertray defaulttimeouts defaulttrayswitch defaulttumble deviceid dl dltray dojamrecovery dostartpage duplexmode eescratch eexec envelopetray errorinfo executive executivepage executivetray exitserver feedsenvelopes filenameforall findfont firstside halfletter halflettertray hardwareiomode idlefonts ISOLatin1Encoding jobname jobtimeout languagesetting ledgertray legal legalsmall legaltray letter lettersmall lettertray manualfeed manualfeedtimeout margins maxoutputposition newsheet note outputposition outputpositioning outputtray packedarray pagecount pagestackorder pagetimeout pagetype papersize papertray printername product ramsize realtime renamefile returnstatus revision sccbatch setallowjobreset setblackgeneration setcacheparams setcmykcolor setcolorscreen setcolortransfer setDECimage setDECimageparams setdefaultDECimage setdefaultDECimageparams setdefaultduplexmode setdefaultenvelopefeedsize setdefaultenvelopetraysize setdefaultjobtimeout setdefaultmansize setdefaultoutputpositioning setdefaultoutputtray setdefaultpagetimeout setdefaultpapertray setdefaulttimeouts setdefaulttrayswitch setdefaulttumble setdojamrecovery setdostartpage setduplexmode seteescratch sethardwareiomode setidlefonts setjobtimeout setlanguage setmargins setoutputposition setoutputpositioning setoutputtray setpacking setpagestackorder setpagetimeout setpagetype setpapertray setpassword setprintername setsccbatch setsoftwareiomode settumble setundercolorremoval setvmlimit sheetcount softwareiomode status trayswitch tumble twothirdsa4 twothirdsa4tray waittimeout Part II Device Control 8 PostScript in a Layered Environment 8.1 Context Layer 8.2 PostScript Operators in a Layered Environment 8.2.1 Preserving the Context State 8.2.2 Restrictions to Some Operators 8.3 Virtual Memory (VM) 9 Device Control Library 9.1 Printing Device Control 9.1.1 Using PostScript Extension Operators 9.1.2 Redefining Native PostScript Operators 9.1.3 Modules Included in the Device Control Library 9.2 Order of Device Control Modules in a Print Job 9.3 Interaction of PostScript Extensions and the Command Line 10 Character Encodings 10.1 Using the Additional Encodings 10.2 Including the DECMCS Encoding Module in a Print Job 10.3 Defining ISOLatin1 for Non-Digital Printers 10.4 Examples of Encoding Vectors 11 PostScript and Layup 11.1 Coordinate System 11.2 Clipping Path 11.3 Transfer Function 11.4 Virtual Memory (VM) 11.5 PostScript Page Operators 11.5.1 copypage 11.5.2 erasepage 11.5.3 showpage 11.6 PostScript Graphics State Operators 11.6.1 currentmatrix 11.6.2 gsave, grestore, and grestoreall 11.6.3 initclip 11.6.4 initgraphics 11.6.5 initmatrix 11.6.6 setmatrix 11.7 PostScript VM Operators 11.7.1 save and restore 11.8 PostScript Media Selection Operators 11.8.1 setpapertray 11.8.2 statusdict 11.8.3 Other Tray Selection Operators 11.8.4 ANSI Files and Media Selection 11.9 Redefining the showpage Operator Part III Programming Considerations 12 Optimizing PostScript Performance 12.1 PostScript Prologue and Script 12.1.1 Comments 12.1.2 Procedures 12.1.2.1 Binding Definitions 12.1.2.2 Constants 12.1.2.3 Smaller Operator Names 12.2 PostScript Graphics Model 12.3 Fonts 12.3.1 Using Font Dictionaries 12.3.2 Defining a Font 12.4 Text 12.4.1 Longer Strings 12.4.2 Variants of show Operator 12.5 Coordinate System 12.6 Using showpage and copypage 12.7 Using #copies for Multiple Copies 13 Font Metrics 13.1 Font Metric File Names 13.2 Format of Font Metric Files 13.2.1 Global Section 13.2.2 Character Metrics Section 13.2.3 Kerning Data Section 13.2.4 Composite Character Section 14 Error Handling 14.1 Error Handling for ScriptPrinters and VMS PrintServer Clients 14.1.1 /NOTIFY Qualifier 14.1.2 MESSAGES Parameter 14.1.3 Including an Error Handler in the Print Job 14.2 Error Handling for ULTRIX PrintServer Clients 14.2.1 Messages Option 14.2.2 Including an Error Handler in a Print Job 14.3 Error Handler 14.3.1 Output Format 14.3.2 PostScript Environment 14.3.3 Error Handler Example A Fonts B Encoding Vectors C PrintServer 20 C.1 Input Trays C.1.1 Values for Input Tray Selection Operators C.2 Output Trays C.2.1 Values for Output Tray Selection Operators C.2.2 Multiple Position Output Trays C.3 Two-Sided Printing C.4 Identification C.4.1 componentids C.5 Default Clipping Path C.6 Virtual Memory (VM) C.7 Default Password C.8 Restrictions to PostScript on the PrintServer 20 C.8.1 Limit to Dictionary Stack Entries C.8.2 Limit to Use of gsave C.8.3 Limit to Use of save C.8.4 Polygon Fill Operators C.9 PostScript Extension Operators on the Printserver 20 D PrintServer 40 and PrintServer 40 Plus D.1 Input Trays D.1.1 Values for Input Tray Selection Operators D.2 Output Trays D.2.1 Values for Output Tray Selection Operators D.3 Two-Sided Printing D.4 Identification D.4.1 componentids D.5 Default Clipping Path D.6 Virtual Memory (VM) D.7 Default Password D.8 Restrictions to PostScript on the PrintServer 40 and PrintServer 40 Plus D.8.1 Limit to Dictionary Stack Entries D.8.2 Limit to Use of gsave D.8.3 Limit to Use of save D.8.4 Polygon Fill Operators D.9 PostScript Extension Operators on the PrintServer 40 and PrintServer 40 Plus E LN03R ScriptPrinter E.1 Input Trays E.2 Output Trays E.3 Two-Sided Printing E.4 Identification E.5 Timeouts E.6 Default Clipping Path E.7 Virtual Memory (VM) E.8 Default Password E.9 Interactive Mode E.10 ScriptPrinter Restrictions E.10.1 Limit to Dictionary Stack Entries E.10.2 Limit to Use of gsave E.10.3 Limit to Use of save E.10.4 Polygon Fill Operators E.10.5 quit E.10.6 start E.11 PostScript Extension Operators on the LN03R F DEClaser 2150/2250 Printers F.1 PostScript Fonts F.2 Input Trays F.3 Output Trays F.4 Two-Sided Printing F.5 Sheetcount F.6 Identification of the Printer F.7 Default Clipping Path F.8 Default Password F.9 Jam Recovery F.10 Setting Margins F.11 Setting Serial Communication Control F.12 PostScript Operators on the DEClaser Printer Glossary EXAMPLES 1-1 Determining Whether a Name Is Defined 1-2 Accessing Extensions Located in statusdict 1-3 Exiting the Server Loop 3-1 Using the firstside Extension Conditionally 6-1 Using the setidlefonts Extension 10-1 Defining the DECMCS Encoding Vector 10-2 Defining the ISOLatin1 Encoding Vector 13-1 Sample AFM File 14-1 VMS Command to Include the Error Handler in a Print Job 14-2 ULTRIX-32 Commands to Include the Error Handler in a Print Job 14-3 Sample Error Handler Log File FIGURES 2-1 Media Load Direction 2-2 Default Coordinate System 2-3 Constant Unit Size 11-1 Example of Printing Four Pages to a Sheet 11-2 Page and Sheet Origins Using Layup A-1 ITC Avant Garde Family-Text Sample A-2 ITC Avant Garde Family-Character Set A-3 Courier Family-Sample Text A-4 Courier Family-Character Set A-5 Helvetica Family-Sample Text A-6 Helvetica Family-Character Set A-7 ITC Lubalin Graph Family-Sample Text A-8 ITC Lubalin Graph Family-Character Set A-9 New Century Schoolbook Family-Sample Text A-10 New Century Schoolbook Family-Character Set A-11 ITC Souvenir Family-Sample Text A-12 ITC Souvenir Family-Character Set A-13 Times Family-Sample Text A-14 Times Family-Character Set A-15 Symbol Family-Sample Text A-16 Symbol Family-Character Set B-1 Adobe Standard Encoding Vector B-2 Symbol Encoding Vector B-3 ISOLatin1 Encoding Vector B-4 DECMCS (Digital Multinational Character Set) Encoding Vector B-5 Characters in Order of Adobe Standard Encoding B-6 Characters in Order of Symbol Encoding-Part 1 B-7 Characters in Order of Symbol Encoding-Part 2 B-8 Characters in Order of ISOLatin1 Encoding-Part 1 B-9 Characters in Order of ISOLatin1 Encoding-Part 2 B-10 Characters in Order of DECMCS Encoding-Part 1 B-11 Characters in Order of DECMCS Encoding-Part 2 B-12 Characters in Alphabetical Order-Part 1 B-13 Characters in Alphabetical Order-Part 2 B-14 Characters in Alphabetical Order-Part 3 B-15 Characters in Alphabetical Order-Part 4 B-16 Characters in Alphabetical Order-Part 5 B-17 Characters in Alphabetical Order-Part 6 B-18 Characters in Alphabetical Order-Part 7 B-19 Characters in Alphabetical Order-Part 8 B-20 Characters in Alphabetical Order-Part 9 B-21 Characters in Alphabetical Order-Part 10 B-22 Characters in Alphabetical Order-Part 11 B-23 Characters in Alphabetical Order-Part 12 B-24 Characters in Alphabetical Order-Part 13 B-25 Characters in Alphabetical Order-Part 14 TABLES 1-1 Volatile Parameters 1-2 Persistent Parameters 6-1 Character Set Used by setidlefonts Operator 6-2 Font Numbers for Idle Scan Conversion 6-3 DECimage Control Operators 9-1 PrintServer Device Control Library Modules 9-2 ScriptPrinter Device Control Library Modules 9-3 Order of Data Sent to a PrintServer Print Job 9-4 Order of Data Sent to a ScriptPrinter Print Job 9-5 PostScript Operators and Print Qualifiers that Conflict C-1 Sheet Names, Sizes, and Load Directions on the PrintServer 20 C-2 PostScript Extension Operators on the PrintServer 20 D-1 Sheet Names, Sizes, and Load Directions on the PrintServer 40 and PrintServer 40 Plus D-2 PostScript Extension Operators on the PrintServer 40 and PrintServer 40 Plus E-1 Interactive Control Characters E-2 PostScript Extension Operators on the LN03R ScriptPrinter F-1 PostScript Cartridge Fonts F-2 Sheet Names, Sizes, and Load Directions on the DEClaser Printer F-3 PostScript Operators on the DEClaser Printers