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


Previous Contents Index


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

DECprint Supervisor 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:

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:
  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:
  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.

7.8 Specifying Printer Resolution with Setup Module

These setup modules allow you to manipulate the resolution of PostScript Level 2 printers.

Table 7-1 Printer Resolution Setup Modules
Setup Module Description
RES_300X300 300 dpi horizontal and vertical
RES_600X300 600 dpi horizontal and 300 dpi vertical
RES_600X600 600 dpi horizontal and vertical - default
RES_1200X600 1200 dpi horizontal and 600 dpi vertical
RES_1200X1200 1200 dpi horizontal and vertical

Note

Not all resolutions are supported by all printers. To have the printer notify you if it cannot print at a specified resolution, add the /NOTIFY switch to the PRINT command. If the printer cannot print at the requested resolution, it prints at a lower resolution.

7.9 Modifying DECimage Parameters with Setup Modules

There following setup modules invoke DECimage or modify the DECimage parameters. They are grouped into the following categories:

Enabling and Disabling DECimage

These setup modules leave all current parameters intact, and turn DECimage on or off. It is not necessary to use these modules if you use other DECimage setup modules. The DECimage setup modules automatically invoke DECimage for the current print job.

Table 7-2 Enabling and Disabling DECimage
Setup Module Description
DI_ON Turns DECimage ON
DI_OFF Turns DECimage OFF

Combined Parameters

These setup modules adjust two DECimage parameters simultaneously.

Table 7-3 DECimage Setup Modules---Combined Parameters
Setup Module Description
DI_HICONTRAST Punch0 = 0.2, Punch1 = 0.8
DI_LOCONTRAST Punch0 = -.1, Punch1 = 1.1
DI_BRIGHTER Punch0 = -.2, Punch1 = 0.8
DI_DARKER Punch0 = 0.2, Punch1 = 1.2
DI_NORMAL Punch0 = 0, Punch1 = 1

Individual Parameters

When you specify one of these setup modules, all other parameters remain at the default value or the value most recently modified by another setup module. The setup modules have no order dependency, so they may appear in any order on the print command line.

Table 7-4 DECimage Setup Modules---Individual Parameters
Setup Module Description
DI_PUNCH0_0 Punch0 = 0
DI_PUNCH0_0P1 Punch0 = 0.1
DI_PUNCH0_0P2 Punch0 = 0.2
DI_PUNCH0_M0P1 Punch0 = -.1
DI_PUNCH0_M0P2 Punch0 = -.2
DI_PUNCH1_1 Punch1 = 1
DI_PUNCH1_0P8 Punch1 = 0.8
DI_PUNCH1_0P9 Punch1 = 0.9
DI_PUNCH1_1P1 Punch1 = 1.1
DI_PUNCH1_1P2 Punch1 = 1.2
DI_SHARP_0P5 Sharpness = 0.5
DI_SHARP_1 Sharpness = 1.0
DI_SHARP_1P5 Sharpness = 1.5
DI_SHARP_2 Sharpness = 2.0
DI_SHARP_2P5 Sharpness = 2.5

DECimage Setup Module Example

The following example adds sharpening and shifts the gray levels:


$ PRINT/NOTIFY/QUEUE=queue/SETUP=(DI_SHARP_2,DI_DARKER) file


Previous Next Contents Index