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 10x14tray 11x17tray 3.875x7.5 3.875x7.5tray 4.125x9.5 4.125x9.5tray 7x9 7x9tray a3 a3tray a4 a4small a4tray a5 a5tray allowjobreset asynchcontrolsmode b4 b4tray b5 b5tray b6tray 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 quit ramsize realtime renamefile returnstatus revision sccbatch setallowjobreset setasynchcontrolsmode 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 settrayswitchpath settumble setundercolorremoval setvmlimit sheetcount softwareiomode status trayswitch trayswitchpath tumble twothirdsa4 twothirdsa4tray universallargetray universalsmalltray 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 Part IV Appendixes A Fonts B Encoding Vectors C PrintServer 20 C.1 Input Trays C.2 Media Sizes C.2.1 Values for Input Tray Selection Operators C.3 Output Trays C.3.1 Values for Output Tray Selection Operators C.3.2 Multiple Position Output Trays C.4 Two-Sided Printing C.5 Identification C.5.1 componentids C.6 Default Clipping Path C.7 Virtual Memory (VM) C.8 Default Password C.9 Restrictions to PostScript on the PrintServer 20 C.9.1 Limit to Dictionary Stack Entries C.9.2 Limit to Use of gsave C.9.3 Limit to Use of save C.9.4 Polygon Fill Operators C.10 PostScript Extension Operators on the Printserver 20 D PrintServer 40 and PrintServer 40 Plus D.1 Input Trays D.2 Media Sizes D.2.1 Values for Input Tray Selection Operators D.3 Output Trays D.3.1 Values for Output Tray Selection Operators D.4 Two-Sided Printing D.5 Identification D.5.1 componentids D.6 Default Clipping Path D.7 Virtual Memory (VM) D.8 Default Password D.9 Restrictions to PostScript on the PrintServer 40 and PrintServer 40 Plus D.9.1 Limit to Dictionary Stack Entries D.9.2 Limit to Use of gsave D.9.3 Limit to Use of save D.9.4 Polygon Fill Operators D.10 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 G DEClaser 1150 Printer G.1 PostScript Fonts G.2 Input Trays G.3 Setting defaultmansize and defaultenvelopetraysize G.4 Output Trays G.5 Language Setting G.6 Sheetcount and Pagecount G.7 Identification of the Printer G.8 Default Clipping Path G.9 Default Password G.10 Jam Recovery G.11 Setting Margins G.12 Timeouts G.13 Setting Serial Communication Control G.14 Protocol Switching G.15 PostScript Operator Extensions for the DEClaser Printer H DEClaser 3250 Printer H.1 PostScript Fonts H.2 Input Trays H.2.1 Sheet Capacity H.2.2 Selecting and Identifying an Input Tray by Location H.2.3 Selecting an Input Tray by Size of Media H.2.4 Page Type Operators H.2.5 Manual Feed H.2.6 Detecting the Size of Paper H.2.7 Envelope Printing H.2.8 Tray Switching H.2.8.1 Setting the Tray Switch Value H.2.8.2 Checking the Input Tray Switch Path H.2.8.3 Setting the Input Tray Switch Path H.3 Output Trays H.3.1 Page Stacking Order H.3.2 Output Positioning H.4 Two-Sided Printing H.5 Selecting Protocols H.5.1 Retrieving the Current Protocol Value H.5.2 Selecting Another Protocol from PostScript H.5.2.1 Selecting DEC PPL3 from PostScript H.5.2.2 Selecting LJ2D from PostScript H.6 Color Operators H.7 Commmunications H.7.1 Retrieving the Current Communication Interface Selection H.7.2 Inquiring the Serial Line Interface H.8 pagecount and sheetcount H.9 realtime and usertime H.10 Timeouts H.11 Quitting a Job H.12 Languages H.13 Identification (ID) of the Printer H.14 Default Password H.15 Margins H.16 Memory H.16.1 Nonvolatile Random Access Memory (NVRAM) H.16.2 PostScript Virtual Memory (VM) H.16.3 General System Memory (RAM) H.17 PostScript Operators on the DEClaser 3250 Printer I Digital PostScript Printer Documentation 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 StandardEncoding Vector B-2 Symbol Encoding Vector B-3 ISOLatin1Encoding Vector B-4 DECMCSEncoding (Digital Multinational Character Set) Vector B-5 Characters in Order of Adobe StandardEncoding 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 ISOLatin1Encoding-Part 1 B-9 Characters in Order of ISOLatin1Encoding-Part 2 B-10 Characters in Order of DECMCSEncoding-Part 1 B-11 Characters in Order of DECMCSEncoding-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 G-1 PostScript Cartridge Fonts G-2 Sheet Names, Sizes, and Supported Sources on the DEClaser Printer G-3 PostScript Operator Extensions for the DEClaser Printers H-1 PostScript Fonts H-2 Input Tray Sheet Capacity H-3 Value of Input Tray Location and Input Tray H-4 Select-By-Size Operators for Sheet Names, Media Sizes, and Input Sources H-5 DEClaser 3250 Printer pagetype Operators H-6 PostScript Operators on the DEClaser 3250 Printer