# Compaq DECprint Supervisor (DCPS) for OpenVMS
System Manager's Guide

Previous | Contents | Index

# 7.12 Printing on Unrecognized Printers

The DCPS software automatically obtains a printer's product name before printing jobs. It uses the product name to select and download device control modules that are specific to the particular printer.

If you use the DCPS software with a printer whose product name it does not recognize, the product name defaults to "UNRECOGNIZED" and the supervisor downloads device control modules associated with that name. Although this configuration is unsupported, the modules associated with the unrecognized printer may be sufficient to permit simple printing with that device.

A system manager can also modify the corresponding device control modules as needed without affecting the characteristics of any of the supported printers. By following the comments contained within the LPS$$UNRECOGNIZED modules, along with some knowledge of PostScript and the specifics of the printer, and examination of device control modules for similarly programmed printers (if any), the system manager may be able to get tray and sheet size selection working for the printer.

Note Your use of an unrecognized printer with DCPS, and any use or modification of the LPS$$UNRECOGNIZED device control modules, is without support or assistance from Compaq Computer Corporation. Further, Compaq makes no commitment to maintain the same contents of or interface to these modules for different versions of DCPS.

Device control modules are located in the following device control library:

      SYS$COMMON:[SYSLIB]DCPS$DEVCTL.TLB

The device control modules associated with an unrecognized printer are:

      LPS$$UNRECOGNIZED_INITPSDEVICE
      LPS$$UNRECOGNIZED_SETCONTEXT
      LPS$$UNRECOGNIZED_SETINPUTTRAY
      LPS$$UNRECOGNIZED_SETOUTPUTTRAY

If you modify these modules for a certain printer, you should always place the modified modules in a site-specific device control library (see Section 7.4).

# Chapter 8
Creating and Maintaining Form Definitions

You can create form definitions, which users can include in their PRINT command to modify the appearance of a file. A form definition can specify several attributes for a print job, including the type of paper stock on which it is to be printed; the width, length, and margins associated with the paper; whether long text lines are to be truncated or wrapped onto another line; and setup modules to be implicitly sent to the printer.

When users specify an unknown form name in their PRINT command, DECprint Supervisor informs them immediately. In contrast, if they specify an unknown setup module in their PRINT command, DECprint Supervisor does not inform them of the problem until it starts printing the job and needs to access the setup module.

The commands for creating, maintaining, and deleting forms require that you have operator privileges.

# 8.1 Associating Setup Modules with Forms

To associate a setup module with a form, use the DEFINE/FORM command with the /SETUP qualifier.

Example 8-1 defines a form called CONFIDENTIAL that uses a setup module called PRIVATE.

Example 8-1 Sample Form Definition, CONFIDENTIAL

    $  DEFINE/FORM CONFIDENTIAL 101-       /DESCRIPTION="prints the word CONFIDENTIAL on each page"-       /STOCK=DEFAULT-       /SETUP=PRIVATE

When you define a form, you supply the following qualifiers and information:

- Form Name: You select the name for the form you are defining. The name can consist of up to 31 characters and must contain at least one alphabetic character.
- Form Number: You specify a number for the form you are defining.
- /DESCRIPTION: You can optionally add a description to the form to help users understand what the different forms do.
- /STOCK: You supply the name of the media that needs to be in the printer when this form is invoked. The media you specify must match the media in the printer. If they do not match, the job is held in the queue until users load the specified media or modify the form definition. Use the DEFAULT parameter to use whatever media is in the printer.
- /SETUP: You must supply the name of the setup module(s) you want associated with the form.

Note The existence of the setup module(s) is not checked until the form is used.

# 8.2 Associating a Form with a Print Queue

If users invoke a setup module frequently, you can associate the setup module with a form, then associate the form with a queue. This method ensures that print jobs submitted to the queue automatically use the setup module. Use the following procedure to associate a form with a queue:

1. Associate the setup module with the form, as described in Section 8.1.
2. Associate the form with the execution queue, by editing parameter 5 (p5) in DCPS$STARTUP.COM as follows:
   - With the /FORM_MOUNTED qualifier, specify the name of the form you want tied to the queue.
   - Specify the /DEFAULT=FORM=form-name qualifier to ensure that every job prints with the form, even if the user does specify a form.
   The following example associates the form called CONFIDENTIAL with an execution queue called XLR8:

       $ @SYS$STARTUP:EXECUTION_QUEUE.COM -
         XLR8-                    !P1 - Execution queue name
         "DECNET/XLR8" -          !P2 - Device name
         DCPS_LIB -               !P3 - Logical name for /LIBRARY
         "" -                     !P4 - Not used
         "/FORM_MOUNTED=CONFIDENTIAL/DEFAULT=(FORM=CONFIDENTIAL,NOFEED)"
                                  !P5 - Queue default qualifiers

# 8.3 Creating Form Definitions for ANSI Files

When you define forms for ANSI files, you can use various qualifiers that affect the page layout. For example, the following command defines the form CENTER to have a top margin of 6 and a left margin of 10:

    $ DEFINE/FORM /MARGIN=(TOP=6,LEFT=10) CENTER 3

You can use the qualifiers in Table 8-1 with form defintions for ANSI files only:

Table 8-1 DEFINE / FORM Qualifiers for ANSI Files
This Qualifier ... | Does the Following ...
--- | ---
/LENGTH= n | Sets the length of each page, in lines.
/MARGIN= keyword= n | Sets the margins. You supply one or more of the following keywords: TOP= n BOTTOM= m RIGHT= y LEFT= z To supply more than one margin keyword, enclose the list in parentheses, as in:
    /MARGIN=(TOP=
    n,BOTTOM=
    m)
/PAGE_SETUP= module | Applies a page setup module to each page in the job.
/[NO]TRUNCATE | Truncates long lines that do not fit in the page width.
/WIDTH= n | Sets the width of the page in columns or characters.
/[NO]WRAP | Wraps lines wider than the page to the next line.

Notes:

- These form definitions are useful only with ANSI files, because other types of files have internal controls for these attributes.
- You can prevent the software from wrapping or truncating long lines by including both /NOWRAP and /NOTRUNCATE in the form definition.

# 8.4 Displaying Forms and Their Attributes

You can display the forms that already exist on your system with the following command:

    $ SHOW QUEUE/FORM

The form definitions display as follows:

    Form name                            Number   Description
    ---------                            ------   -----------
    A4_12 (stock=PLAIN_PAPER)              1129   A4 12-Pitch with margins
    A4_LPT_GRAY (stock=PLAIN_PAPER)        1118   A4 DP line printer with gray bars
    A4_LPT_PLAIN (stock=PLAIN_PAPER)
                                           1119   A4 Plain DP line printer format
    BOOT_CHART (stock=DEFAULT)               37   BOOT_CHART
    BSS$LANDSCAPE (stock=DEFAULT)          3301   BSS Specific Landscape
    BSS$PORTRAIT (stock=DEFAULT)           3302   BSS Specific Portrait

You can display the attributes of a form using the SHOW QUEUE/FORM/FULL command. For example, this command displays the attributes of DCPS$DEFAULT:

    $ SHOW QUEUE/FORM/FULL DCPS$DEFAULT

    Form name                            Number   Description
    ---------                            ------   -----------
    DCPS$DEFAULT (stock=DEFAULT)           1115   DCPS default
        /LENGTH=66 /STOCK=DEFAULT /TRUNCATE /WIDTH=80

# 8.5 Deleting a Form

Use the DELETE/FORM command to delete a form definition from the system's form table. The format of this command is as follows:

    $ DELETE/FORM form-name

In the command line, you supply form-name, which is the name assigned to the form you are using.

Before you use the DELETE/FORM command, execute the SHOW QUEUE/FULL/ALL command. References to a form can exist as an attribute of an active print queue or as a qualifier to a print request. If you try to delete a form that has outstanding references, you are notified of the condition, and the form is not deleted. (Refer to Appendix A.)

# 8.6 Using the Default ANSI Form Definition

If users omit a form definition in their PRINT command, but supply one of the following qualifiers, DECprint Supervisor links the default form definition DCPS$DEFAULT with the ANSI file.

- /HEADER
- /SPACE
- /PARAMETERS=[NO]TAB

# Chapter 9
Charging Users for Printer Resources

This chapter describes the accounting information that is supplied to the OpenVMS accounting files by the DECprint Supervisor software.

The OpenVMS Accounting Utility reads information about the use of system resources from the file SYS$MANAGER:ACCOUNTING.DAT. The DECprint Supervisor software records information in this file about printer usage. For information about the OpenVMS Accounting Utility, see the OpenVMS System Management Utilities Reference Manual.

# 9.1 Accounting Information Supplied by the DECprint Supervisor Software

The print symbiont supplies the following information in the accounting file for each print job:

- Pages printed
  This is the actual number of sheets printed. When you are using the NUMBER_UP parameter to print multiple pages on a sheet, this field records the number of sheets of paper printed, not the number of logical pages printed. The number of sheets printed includes the separation (flag, trailer, and burst) pages. When the print job is deleted by the user or system operator, this information reflects the number of pages printed before the job was terminated.
  The value shown in the accounting file and on the DCPS trailer page will not be correct for all printers. See Section 9.3 below for more information.
- Gets from source
  This is the number of RMS "gets" from all files in the print job (records read).
- QIO puts
  This is the number of QIO "writes" to the printer per job.

When a print job has been completed successfully, the print symbiont sends a request to the job controller to insert certain accounting data fields into the accounting log file. For successful jobs and jobs terminated by the DELETE/ENTRY command, the accounting file also includes the following message:

    %SYSTEM-S-NORMAL, normal successful completion

If the print job terminates abnormally, the information the print symbiont supplies in the accounting log may be incomplete. To filter out such jobs, count only the jobs that receive the successful completion status message. Any of the following may cause the job to terminate abnormally:

- STOP/QUEUE/RESET command
- Symbiont crash
- Printer crash
- Network connection lost

# 9.2 Accounting Information Supplied by the Job Controller

The job controller supplies the following information in the accounting file for print jobs:

- Username
  User name of the user who submitted the print job.
- Account
  Account name of the user who submitted the print job.
- UIC (user identification code)
  UIC of the user who submitted the print job.
- Process ID
  Process ID of the user who submitted the print job.
- Start Time
  The time the print job reached the top of the device queue (not necessarily the time that the print job actually began to print).
- Finish Time
  The time the job finished printing.
- Elapsed Time
  The wall-clock time it took for the job to print (finish time minus start time).
- Priority
  Queue priority of the print job.
- Final Status Code
  Exit status of the print job. The status code for success is 00040001.
- Queue Entry
  Queue entry number. This is the print job number. In this example, 222 is the job number:

      $ PRINT/QUEUE=LN03R$SCRIPT4/NOTIFY TEST.MEM
        Job TEST (queue LN03R$SCRIPT4, entry 222) started on queue SCRIPT4

- Queue Name
  Name of the print device queue.
- Queue Job
  Print job name, as printed on the job flag page.
- Final Status Text = F$MESSAGE
  The text for the Final Status code. The text for completion of a normal job is:

      %JBC-S-NORMAL,  Normal successful completion

## 9.2.1 Accounting Fields Left Blank by the Job Controller

The job controller fills the following fields with blanks in the accounting file for print jobs:

- Owner ID
- Terminal Name
- Remote Node Name
- Remote ID

## 9.2.2 Accounting Fields Filled with Zeros by the Job Controller

The job controller fills the following fields with zeros in the accounting file for print jobs:

- Privilege <31--00>
- Privilege <63--32>

# 9.3 Accuracy of DCPS Page Counts

The page count reported by DCPS in the accounting file and on the DCPS trailer page relies on information returned by the printer. Some printers do not report accurate information, due to different methods for:

- Counting pages vs. sides
  Some printers count physical sheets of paper, while others count images, or sides printed.
- When pages are counted
  Some printers count pages interpreted by the printer, while others count pages physically output.

For the page count reported by DCPS to be correct, the printer must count physical sheets interpreted by the printer. All Compaq, DIGITAL and GENICOM printers supported by DCPS, except those noted below, adhere to this requirement and so send the proper information to DCPS.

No other printer is guaranteed to supply correct accounting information. In addition, these Compaq and DIGITAL printers do not supply correct accounting information:

- Compaq Laser Printer LN20
- Compaq Laser Printer LN40
- Compaq Laser Printer LNC02
- DIGITAL Laser Printer LNC02

# 9.4 Compatibility with Mechanical Page Counters

The PrintServer printers have mechanical page counters.

The mechanical page counter is different from the counter accessible through the PostScript pagecount operator.

- The mechanical page counter counts all the sheets printed since the print engine was built.
- The PostScript page counter counts the number of sheets printed by the controller.

Under normal use, the totals of both counters increase at a similar rate, but there can be a significant difference between them. Print engine test pages, initiated with the test button on the printer, are recorded on the mechanical counter but not on the PostScript counter. Also, replacing components can affect the counters. For example, replacing the nonvolatile memory of the controller resets the PostScript counter, but it does not affect the mechanical counter.

Because the counters record different events, they should be used for different purposes:

- Use the PostScript counter to determine the number of sheets printed within a PostScript program.
- Use the mechanical counter to track print engine use.

Previous | Next | Contents | Index