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

Previous | Contents | Index

# 6.4 Adding a System Message to Separator Pages

You can add a system message to the top of job and file burst, flag, and trailer pages for all jobs printed on your system. The following example shows you how:

    $ DEFINE /EXECUTIVE_MODE /SYSTEM PSM$ANNOUNCE "Computer Services Group"

The example shows that the logical name PSM$ANNOUNCE is now "Computer Services Group".

Note The PSM$ANNOUNCE logical is used by other print symbionts (for example, LATSYM) as well as by the DCPS symbiont. Your definition of PSM$ANNOUNCE will also affect these other symbionts.

# 6.5 Extended File Specifications

DCPS provides default support for systems with Extended File Specifications, including ODS-5 volumes and deep directories.

Any file in any directory on an ODS-5 volume can be printed. Since files on ODS-5 volumes may have long directory and file names, the name may be truncated on file separator pages and in the heading when printing with the LIST translator. If the file name is truncated, it is so indicated with an ellipsis (...).

# 6.6 Requesting Job Log Pages

A job log page is an optional sheet with information about the print job and any messages that occurred during the print job. Use the MESSAGES=PRINT parameter in the PRINT command to print a job log page. When printed, the job log page precedes the job trailer page. If you are not printing job trailer pages, the job log page is the last page of a job.

# 6.7 The File Error Page

If the software cannot access the print file when the print job starts printing, a file error page is printed and the software continues with the next file in the print job (if any).

The file error page contains the following information:

- File log page banner
- Client node name and user's name
- Job number
- File identification (file name, extension, and version only)
- File specification (full file specification)
- The messages area

# Chapter 7
Creating Setup Modules and Device Control Libraries

# 7.1 What Is a Setup Module?

A setup module is a file containing instructions that modify the appearance of a print job or redefine the instructions in the print job.

You can include a setup module in a print job with the PRINT command's /SETUP qualifier. The following example uses a setup module that specifies 600 dots-per-inch (DPI) resolution:

    $ PRINT/QUEUE=LPS32$2SIDES/SETUP=RES_600X600 IMAGE.PS

You can also implicitly include setup modules in a print job through the use of a form (see Chapter 8).

# 7.2 Locating Setup Modules

DCPS ships with various setup modules, which are located in the following device control library:

SYS$LIBRARY:DCPS$DEVCTL.TLB

To list the setup modules, use the following command:

    $ LIBRARY/LIST SYS$LIBRARY:DCPS$DEVCTL.TLB

The list of setup modules displays, similar to the following:

    DCW1000_DISPLAY
    DCW1000_ENHANCED
    DCW1000_HIGHRES
    LPS$$APPLE360_INITPSDEVICE
    LPS$$APPLE360_SETINPUTTRAY
    RES_1200X1200
    RES_1200X600

Note Do not modify any of the setup modules or the device control library.

Some setup modules are created only for certain printers. Those setup modules have the printer name as part of their file name. For instance, the setup module DL3500_RET_DARK is intended for the DEClaser 3500 printer.

Note Do not change the contents of the standard supplied device control library.

## 7.2.1 Locating Custom Setup Modules

Custom setup modules go in special device control libraries, which are required to be .TLB (text library) files located in SYS$LIBRARY. The following command lists all of the text libraries in SYS$LIBRARY. To determine what subset of these are special device control libraries used with DCPS, correlate the .TLB file names with the libraries and library search lists associated with the /LIBRARY qualifier for your system's DCPS print queues.

    $ DIRECTORY SYS$LIBRARY:*.TLB

## 7.2.2 Displaying the Contents of a Setup Module

To see the instructions that a setup module contains, do the following:

1. Extract the setup module from the device control library. The following example extracts the setup module DI_ON from DCPS$DEVCTL.TLB and renames it MYSETUP.TXT in the user's directory:

       $ LIBRARY/EXTRACT=(DI_ON)/OUT=MYSETUP SYS$LIBRARY:DCPS$DEVCTL.TLB

2. Type or edit the setup module to display its contents:

       $ TYPE MYSETUP.TXT

   The setup module DI_ON enables DECimage, and contains the following instructions:

       %!
       % ~~~~~~~~~~ DI_on ~~~~~~~~~~
       statusdict begin false setDECimage end
       systemdict /languagelevel known {languagelevel} {1} ifelse
       2 ge {currentpagedevice /Install get exec} if
       statusdict begin true setDECimage end
       % ~~~~~~~~~~~~~~~~~~~~~~~~~~~

   Note Some setup modules contain escape sequences or graphics, which cannot be displayed when you type the file. For such modules, you may wish to use the DUMP/RECORD command on the extracted file.

# 7.3 Creating Custom Setup Modules

You can create setup modules that affect print jobs with different data types. Some setup modules manipulate ANSI print jobs, while others affect PostScript jobs. You can create setup modules for any data type you support.

Notes:

- If your PCL or Proprinter setup module needs carriage-control characters after each line, manually supply them when you create the setup module file. (PCL and Proprinter setup modules do not end line with carriage-control characters because the setup modules may contain binary data, like fonts and raster graphics.)
- ANSI setup modules cause a page eject in the printer before the data file, if the setup module causes anything to be printed.

# 7.4 Creating Device Control Libraries

To make the setup module accessible to users, you must create a device control library and put the module in the library. Create a different library for setup modules of each data type. Do not include setup modules of different data types in the same library. You can create a library for ANSI, PCL, Proprinter, or PostScript files.

Note Do not put your custom setup modules in the standard DCPS$DEVCTL library. Custom setup modules in DCPS$DEVCTL will be deleted if you upgrade DECprint Supervisor software.

To create a library for setup modules, use the following command format:

    $ LIBRARY/CREATE/TEXT SYS$COMMON:[SYSLIB]library-name.TLB

You supply the library-name, the name you give to the library.

The following command creates a new PostScript device control library, PS1, for your customized PostScript setup modules:

    $ LIBRARY/CREATE/TEXT SYS$COMMON:[SYSLIB]PS1.TLB

For more information, refer to the OpenVMS Command Definition, Librarian and Message Utilities Manual.

## 7.4.1 Putting Setup Modules in Libraries

To insert a setup module into a device control library, use the following command format:

    $ LIBRARY/INSERT SYS$LIBRARY:library-name.TLB module-name

In the command line, you supply the following information:

library-name | The name of the library
module-name | The name of the setup module

The following command puts the PostScript setup module, CONFIDENTIAL.PS, into your PostScript device control library, PS1.TLB, and names the setup module CONFIDENTIAL:

    $ LIBRARY/INSERT SYS$LIBRARY:PS1.TLB CONFIDENTIAL.PS

The following command puts the ANSI setup module, A4_PAGE.TXT, into your ANSI device control library, ANSI1.TLB, and names the setup module A4_PAGE:

    $ LIBRARY/INSERT SYS$LIBRARY:ANSI1.TLB A4_PAGE.TXT

## 7.4.2 Specifying a Library Search List

If you have several device control libraries, you need to set up a search list of the libraries in SYS$STARTUP:DCPS$STARTUP.COM. The search list specifies which device control libraries to search, and the priority of the libraries.

Example 7-1 shows a search list of device control libraries.

Example 7-1 Search List for Device Control Libraries

    $ DEFINE/SYSTEM/EXECUTIVE/NOLOG DCPS_LIB -
             DCPS$DEVCTL,-
             "PS1/DATA_TYPE=POSTSCRIPT",-
             "ANSI1/DATA_TYPE=ANSI",-
             PS2

In Example 7-1, the software does the following:

1. Looks in the standard device control library DCPS$DEVCTL for required setup modules and for any setup modules that have been specified with /SETUP or /FORM.
2. Looks in the PostScript library PS1 for any specified setup modules not found in the standard device control library. (PostScript setup modules can be used with any type of file, so the PostScript device control library is always included in the search for a setup module.)
3. If the print job is ANSI, looks in the library called ANSI1.
4. If the print job is a data type other than ANSI, skips the ANSI1 library and looks for it in the PostScript library PS2.

To define your library logical name and search list, perform the following steps:

1. Edit DCPS$STARTUP.COM and add the following command line:

   Command Line | Example
   --- | ---
       $ DEFINE/SYSTEM/EXECUTIVE/NOLOG -

       logical-name -

       search-list
       $ DEFINE/SYSTEM/EXECUTIVE/NOLOG DCPS_LIB -

        DCPS$DEVCTL,-

        "PS1/DATA_TYPE=POSTSCRIPT",-

        "ANSI1/DATA_TYPE=ANSI",-

        PS2

   In the command line, you supply the following information:
   logical-name: Use a logical name that expands to a list of library names. Make sure the logical name also appears in the execution queue definition (parameter p3). search-list: Add the list of libraries to be searched. Use the following guidelines as you add libraries:
   - Place the standard device control library, DCPS$DEVCTL, first in the list for most efficient printing.
     If you do not include DCPS$DEVCTL in the library search list, the symbiont stops and returns the following error message:

         REQMODNOTFOUND, Required device control module module-name not found

   - Make sure all the library names are in SYS$LIBRARY.
   - Make sure all the library names have the file extenstion .TLB.
   - For each library that includes the /DATA_TYPE qualifier, enclose the library name and the qualifier in quotation marks. If you do not use the /DATA_TYPE qualifier, you do not need to enclose the library name in quotation marks. The default data type for a library is PostScript.
   - If an ANSI module and a PostScript module perform the same function and have the same name, determine which one you want as the default for ANSI jobs.
     If you want ANSI jobs to default to PostScript, place the PostScript device control library before the ANSI library. If you want ANSI jobs to default to ANSI, place the ANSI library in front of the PostScript library.
2. Stop and restart the execution queue to include your new library. (If you add a setup module to an existing library, you do not have to reinitialize the queue.)

## 7.4.3 Device Control Libraries Must Exist for Queue to Start

All device control libraries specified for a queue must exist for the queue to start. For example, if a queue is defined with the following logical, the libraries SYS$LIBRARY:DCPS$DEVCTL.TLB, SYS$LIBRARY:ANSI.TLB and SYS$LIBRARY:PS.TLB must all exist as text libraries:

      $ DEFINE/SYSTEM/EXECUTIVE DCPS_LIB -
          DCPS$DEVCTL, -
          "ANSI/DATA_TYPE=ANSI", -
          "PS/DATA_TYPE=POSTSCRIPT"

## 7.4.4 Preserving Custom Setup Modules During Upgrades

When you install DECprint Supervisor software, it creates a new version of the standard device control library (DCPS$DEVCTL.TLB). If you purged old files during the software installation, early copies of the device control library are deleted. (Refer to the Software Installation GuideSoftware Installation Guide for more information.)

When you add custom setup modules, create a new library and refer to it in the library search list. This preserves your custom setup modules when you upgrade your software.

Upgrading from DECprint Printing Services or PrintServer Client Software

DECprint Printing Services software and PrintServer Client software have their own device control libraries (CPS$DEVCTL.TLB and LPS$DEVCTL.TLB). When you upgrade to DECprint Supervisor, the CPS$ and LPS$ device control libraries are no longer used. If you have custom setup modules in either of those libaries, insert the modules into a new library and specify the library in the device control library search list.

# 7.5 Including Setup Modules in Print Job

You can specify setup modules using the /SETUP qualifier in the PRINT command.

To include an ANSI setup module in a print job using the /SETUP qualifier, use the following command format:

    $ PRINT/QUEUE=queue-name/SETUP=your-module-name print-file.TXT

If you enter the command wrong, the error is not detected until the file prints. To enable the software to detect the error immediately, you can include the setup module in a form. See Chapter 8 for instructions.

If users access a setup module frequently, you can associate the setup module with a queue, so that all print jobs submitted to that queue are printed with the setup module automatically. See Chapter 8 for instructions.

# 7.6 Persistently Loading PostScript Resources

Note This feature applies only to desktop printers; PrintServer printers are loaded with persistent resources using the PrintServer software.

Downloading PostScript code with every print job can adversely affect printing performance. To resolve this problem, you can load a module that permanently resides in the printer.

The module LPS$PERSISTENT_RESOURCES loads persistently to desktop printers. To create a persistent PostScript module, follow these steps:

1. Create a new device control library for site-specific PostScript setup modules, using the following command:

       $ LIBRARY/CREATE/TEXT SYS$COMMON:[SYSLIB]library-name.TLB

2. Edit the SYS$STARTUP:DCPS$STARTUP.COM file to include the new device control library in the search list. Use the following command in the DCPS startup file:

       $ DEFINE/SYSTEM/EXECUTIVE/NOLOG DCPS_LIB DCPS$DEVCTL, "library-name/DATA=POST"

3. In the execution queue definition for each PostScript printer to which you want to load the setup module, ensure that the logical name DCPS_LIB is entered in parameter 3 as the device control search list logical name.
4. Save the DCPS$STARTUP.COM file.
5. Stop the queues for the printers affected by the change, using the STOP/QUEUE/RESET command for each queue.
6. Execute the new DCPS$STARTUP.COM file.
7. Test each print queue by sending two print jobs to the printer. The setup module is loaded with the first print job sent to the printer. The setting should be effective for the second print job, as well.

CAUTION Problems can occur from the misuse of the persistent setup feature. Keep the following in mind when using this feature: Only PostScript setup modules can be persistently loaded. Other data types cannot be persistently loaded. A setup module can exceed the printer's virtual memory. Different models of printers have different capacities. For example, a setup module can overwhelm a printer with too many fonts. A shared network printer can be used from several nodes in the network. Make sure the same setup module is loaded from all the nodes that access the printer to ensure consistent print results. If you required different setup modules load the setup module with each print job, using either the /SETUP or /FORM qualifier. Improper PostScript coding in a persistently loaded setup module can cause unexpected results that are difficult to analyze. Also, because the code remains in the printer until the printer is turned off, users from different systems may have print jobs fail with unexpected results, but would not be able to determine the cause of the problem.

# 7.7 Changing the Default Character Set for PCL and Proprinter Print Jobs

The default character set for PCL files is Roman-8. The default character set for Proprinter files is code page 437, character set 1. To change the default character set, use the following procedure:

1. Create one device control library for PCL setup modules, one for Proprinter modules, and another library for PostScript modules. Use the following commands:

       $ LIBRARY/CREATE/TEXT SYS$COMMON:[SYSLIB]PCL_LIB
       $ LIBRARY/CREATE/TEXT SYS$COMMON:[SYSLIB]PRO_LIB
       $ LIBRARY/CREATE/TEXT SYS$COMMON:[SYSLIB]PS_LIB

2. Edit DCPS$STARTUP.COM to include these libraries, as follows:

       DEFINE/SYSTEM/EXECUTIVE/NOLOG DCPS_LIB DCPS$DEVCTL,
                                       "PCL_LIB/DATA=PCL",
                                       "PRO_LIB/DATA=PRO",
                                        PS_LIB)

   The PostScript device control library (PS_LIB) must be last in the search list.
3. Create the following setup modules:
   - The DEF_CHAR_SET.PCL file selects the PC-8 Danish/Norwegian character set:

                 <ESC>!`1P<ESC>(11U<ESC>!`0P

     Replace <ESC> with the escape character (decimal 27).
   - The DEF_CHAR_SET.PRO file selects code page 850:

                 <ESC>`<ETX><NUL><CR>R<ETX>

     - Replace <ESC> with the escape character (decimal 27).
     - Replace <ETX> with the etx character (decimal 3).
     - Replace <NUL> with the null character (decimal 0).
     - Replace <CR> with the carriage return character (decimal 13).
   - The DEF_CHAR_SET.PS PostScript file is used for printing files that are neither PCL nor Proprinter.
4. Put these modules in the appropriate device control libraries, using the LIBRARY command as shown in the following example:

       $ LIBRARY/INSERT/TEXT SYS$COMMON:[SYSLIB]PCL_LIB DEF_CHAR_SET.PCL

       $ LIBRARY/INSERT/TEXT SYS$COMMON:[SYSLIB]PRO_LIB DEF_CHAR_SET.PRO

       $ LIBRARY/INSERT/TEXT SYS$COMMON:[SYSLIB]PS_LIB DEF_CHAR_SET.PS

5. Create a form definition that includes DEF_CHAR_SET as the setup module. You can associate this form with your printer execution queue as follows:

       $ DEFINE/FORM DEF_CHAR_SET form_number -   /SETUP=DEF_CHAR_SET/STOCK=DEFAULT

   To make this change to the queue permanent, specify this form in the execution queue definition in the DCPS$STARTUP.COM file.

Previous | Next | Contents | Index