DECprint Supervisor (DCPStm) for OpenVMS
User's Guide


Previous Contents Index

15.5 Resolution Setup Modules

You can use the following resolution setup modules to temporarily change the resolution on multiple resolution printers:

Note

Not all of these setup modules are applicable to all printers.


Chapter 16
Controlling File Separation Pages

The printing system can produce both job separation pages (job burst pages, job flag pages, and job trailer pages) and file separation pages. The system manager can define the job separation pages and default file separation pages for the queue. Users cannot affect the job separation pages, but can control whether to print file separation pages.

Files in a print job can be separated by:

You can control the inclusion of file flag pages using the following PRINT command qualifiers:

16.1 Controlling File Separation Pages for All Files

You can specify the default file separation behavior for all files in a print job by placing the /[NO]BURST, /[NO]FLAG, and /[NO]TRAILER qualifiers between the PRINT command and the first file specification.

For example, the following command will print a file burst page before each file:


$ PRINT/BURST FIRST.TXT, SECOND.TXT

If you do not specify the behavior for a type of file separation page (for example, the above command does not specify flag or trailer pages), the default behavior is as specified by the queue's /DEFAULT qualifier. If /DEFAULT does not specify a particular type of separation page, then none is generated.

The negated qualifiers (for example, /NOTRAILER), are useful in overriding a queue's default qualifier (for example, /DEFAULT=TRAILER).

16.2 Controlling File Separation Pages for Individual Files

You can alter the default file separation page behavior for individual files within a print job by placing the qualifiers after the corresponding file specifications.

For example, you can use the following command to override a queue's /DEFAULT=BURST qualifier and instead print file flag pages for all but the second file in a job:


$ PRINT/NOBURST/FLAG FIRST.TXT, SECOND/NOFLAG, THIRD

16.3 Displaying the Default Separation Pages for a Queue

To see the default separation pages for a queue, enter the following command:


$ SHOW QUEUE/FULL PS20$A14


Printer queue PS20$A14, on STAR::LPS, mounted form DCPS$DEFAULT 
(stock=DEFAULT) 
    /BASE_PRIORITY=4 /DEFAULT=(FLAG,FORM=DCPS$DEFAULT (stock=DEFAULT)) 
    /NOENABLE_GENERIC /LIBRARY=DCPS_LIB Lowercase /OWNER=[SYS,SYSTEM] 
    /PROCESSOR=DCPS$SMB /PROTECTION=(S:E,O:RD,G,W:W) 
    /SCHEDULE=(NOSIZE) 
    /SEPARATE=(BURST,TRAILER) 

This display shows that the job burst pages and job trailer pages are printed for print jobs sent to this queue (/SEPARATE=(BURST,TRAILER)). File flag pages are printed by default, as indicated by /DEFAULT=FLAG, but can be overridden by PRINT command qualifiers.


Chapter 17
Using the LN32, LNM40, mL320 and mL401 Stapler with DCPS

You can have the Compaq Laser Printer LN32 and LNM40, GENICOM LNM40, and microLaser 320 and 401 staple your DECprint Supervisor jobs when the printer has the optional stapler installed.

17.1 DCL Syntax

Stapling is specified with the PRINT parameter STAPLE.

$ PRINT /PARAMETERS=(..., STAPLE= 
  • LEFT_CENTER
  • TOP_CENTER
  • TOP_LEFT
  • TOP_RIGHT
  • NONE
,...) file_name

These values specify the position of the staple with respect to the orientation of the image on the paper. When NONE is specified, the job is printed without stapling, overriding the printer's default stapling setting.

17.2 Possible Stapling Positions

Some of the values for the STAPLE parameter are not always possible, depending on the direction in which the paper is fed through the printer. See Table 17-1 for possible stapling positions depending on your job's page orientation and the printer's paper feed direction.

Table 17-1 LN32, LNM40, mL320 and mL401 Stapling Positions
Image Orientation and Paper Feed Direction TOP_LEFT TOP_CENTER TOP_RIGHT LEFT_CENTER
Portrait        
Long-Edge Feed (LEF) Yes     Yes
Short-Edge Feed (SEF) Yes Yes Yes  
Landscape        
Long-Edge Feed (LEF) Yes Yes Yes  
Short-Edge Feed (SEF) Yes     Yes

When you specify an unsupported staple position, DCPS issues an error message and does not print the job. See Section 17.4 for a full list of DCPS stapling messages.

17.3 Stapling Details

Please note the following details when using stapling on the LN32, LNM40, mL320 or mL401 printer with DCPS:

17.4 DCPS Stapling Error Messages

These error messages can be returned by DCPS when stapling. Refer to the User's GuideUser's Guide for more information about error messages.

STPNOSUP, Stapling feature not supported for product_name printer.
Explanation: The printer does not support stapling.
User Action: Print to a Compaq Laser Printer LN32 or LNM40, GENICOM LNM40, or GENICOM microLaser 320 or 401 with optional stapler.

STPOUTTRAY, Selected output tray does not support stapling.
Explanation: The output tray you specified cannot be used for stapling.
User Action: Choose the output trays BIN_1, BIN_2 or BIN_3.

STPPOSNOSUP, Stapling position not supported for orientation and feed direction.
Explanation: The printer cannot put a staple where you have requested.
User Action: Load the paper in a different feed direction, if supported for that paper size, or choose a different page orientation.

STPSIZENOSUP, Stapling not supported for sheet_size size paper and feed direction.
Explanation: The printer cannot staple your job because the paper size and/or paper feed direction is not supported for stapling.
User Action: Load the paper in a different feed direction, if supported for that paper size.


Chapter 18
Using the Error Handler to Debug

The device control library includes an error handler to help debug PostScript programs. The error handler prints the last partial page of output, as well as information to help identify the error.

18.1 Including the Error Handler in a Print Job

The error handler is not automatically included each time a job prints (unless your system manager has changed this default). Therefore, you must explicitly invoke it, as follows:


$ PRINT/SETUP=LPS$ERRORHANDLER filename

The error handler returns PostScript messages. You can send these messages to a file or printer by using the /PARAMETERS=MESSAGES qualifier as described in Chapter 19. For example:


$ PRINT/QUEUE=PS40$A10/PARAMETERS=MESSAGES=KEEP FILE.PS

If you are developing PostScript applications, you can make the error handler easier to access by defining a form to include the error handling setup module, as described in Chapter 14.

18.2 How the Error Handler Affects the PostScript Environment

The error handler references operators from the dictionary systemdict, rather than using definitions that may have been modified by the user program.

In some cases, a program can behave differently when the error handler is loaded. For example, executing the exit operator outside a looping context causes an invalidexit error if the error handler is not loaded. However, if the error handler is loaded, the program exits without generating an error.

18.3 Error Handler Example

The sample log file in Example 18-1 is for the following PostScript program:


[/1st-level [/2nd-level [/3rd-level [/4th-level 56 ] ] ] (end)] 
/myproc { [ 8 8 ] 0 0 div setdash } def 
100 200 moveto 
myproc 

The following command includes the error handler and causes a log file to be generated:


$ PRINT/PARAMETERS=MESSAGES=KEEP/SETUP=LPS$ERRORHANDLER filename

Example 18-1 shows the error handler output that is appended to the log file when the program executes.

Example 18-1 Sample Error Handler Log File

ERROR: undefinedresult (1)
OFFENDING COMMAND: div (2)
 
OPERAND STACK:  (3)
 
0 
0 
[ 8 8 ] 
[/1st-level [/2nd-level [/3rd-level  -array- ] ] (end) ] 
 
EXECUTION STACK: (4)
 
{ setdash } 
 
GRAPHICS STATE:  (5)
Current Matrix: [ 4.16667 0.0 0.0 -4.16667 0.0 3298.0 ] 
Color: 0.0 
Current position: x = 100.0, y = 200.0 
Line width: 1.0 
Line cap: 0 
Line join: 0 
Flatness: 1.0 
Miter limit: 10.0 
Dash pattern: [ ] 0.0 

The array defined at the start of the example file is expanded three levels deep. The innermost version of the array is represented simply as --array--.

18.4 Reading Error Handler Output

When an error occurs, the error handler executes a showpage command to print the last partial page of output (see Example 18-1). It also gives the following information:

  1. The name of the error
  2. The PostScript operator that encountered the error
  3. The contents of the operand stack
    The error handler displays the value of each object on the stack, with numbers in decimal. All elements of arrays and procedures are displayed recursively to a maximum depth of three levels. Indicators describe other objects, for example, --savelevel-- for a save object.
    The first item displayed is the object on the top of the stack.
  4. The contents of the execution stack
    The execution stack contains partial procedures that are being executed. The top object is a procedure that contains the operators and operands still to be executed. The second object is the unexecuted part of the calling procedure.
  5. Information about the graphics state:

When you find an error in the PostScript code, you should modify the application that produced the file, or inform the applications programmer of the problem.

18.5 PostScript Data Output Format

PostScript data is easily identifiable, usually in the way the data appears in a PostScript source file. The error handler represents PostScript data as follows:

The PostScript language may be extended to include new data formats that are unknown to the error handler. Data in unknown formats is represented as two question marks followed by the name of the unknown data format.

18.6 Determining Where the Error Occurred

It may be impossible to determine exactly where in the PostScript stream the error occurred, because the execution stack may not uniquely identify the context. In this case, you can add diagnostics information to the PostScript file. For example, if the error appears to be related to a showpage definition, modify your PostScript code as follows:


/myshowpage 
   { 
   (At the top of my showpage\n) print flush 
   % some PostScript code 
   (Just before real showpage call\n) print flush 
   showpage 
   } def 


Previous Next Contents Index