Skip to content

Printer Keys


The following keys are available in the Printer Configuration File. The keys and their values are stored in SEAL-specific MongoDB.


The printers are imported, exported and managed via easyPRIMA.

Hint - bos2gyros

With the bos2gyros command line tool, the printer configuration provided by the Driver Database from SEAL Systems (DDB) is mapped to the configuration format known to PLOSSYS 5.


Units

Values with time specifications are specified in the following time units:

  • seconds (s, sec)

  • minutes (m, min)

  • hours (h, hr)

  • days (d)

  • weeks (w, wk)

  • months

  • years (y, yr)

Example - with time units

2 hours and 30 minutes: 2h30m

4 minutes and 2 seconds: 4m2s


Top Level Section

The top level section of a printer configuration file contains the following keys and sections:


printer Key

printer specifies the name of the output device in the PLOSSYS 5 system.

Caution - allowed characters

The printer name must not contain UTF-8 or apostrophes. Although the printer will be imported, jobs cannot be processed via this printer.

The key is mandatory.

Available values: String

Default: none


connection Key

connection specifies the URL of the printer connection. The URL includes the transfer protocol, the printer name and the port number. If printer failover or load balancing is needed, use Virtual Queues.

The key is mandatory.

Available values: String

  • connection:<protocol>://<printer_name>:<port>/<queue_name>?<options>

Default: none

Available values for <protocol>: String

  • command
  • http
  • https
  • ipp
  • ipps
  • lpr
  • pjl
  • socket
  • virtual

Available values for <port>: Integer

Default:

  • 515 for lpr
  • 9100 for socket and pjl
  • 80for http
  • 631for ipp
  • 443 for https and ipps

Available values for <queue_name>: String

  • specifies the name of the printer in the spooler (mandatory).

http, https, ipp, and ipps all use the IPP protocol to transfer the job to the printer. https and ipps use TLS encrypted connections to the printer. Currently, printer certificates are not validated in standard installations.

Available options - only for lpr:

  • stream specifies whether the data is streamed. With stream=false, jobs can be output via LPR to a Windows Print Server.

Available options - only for pjl:

  • checklevel specifies the level of the PJL protocol supported by the printer:
    • checklevel=full specifies full PJL support. This is the default if no check level has been specified.
    • checklevel=sync specifies restricted PJL support using the @PJL ECHO message.
    • checklevel=none specifies no PJL support. This is equal to the socket protocol.

Available values: Boolean

Example - printer connection with socket

connection: socket://myprinter:9100

Example - printer connection with lpr

connection: lpr://myprinter:515?stream=true

Examples - printer connection with ipp/ipps or http/https

connection: ipp://myprinter:631/
connection: ipps://myprinter:443/
connection: http://myprinter:631/
connection: https://myprinter:443/
connection: ipp://myprinter:631/ipp/
connection: https://myprinter:443/ipp/printer/

Most printers work with the first four examples. Some, however, require a path to be set like in the last two examples. The most common paths are ipp/ and ipp/printer/ as shown in the examples.

Example - printer connection with pjl and restricted PJL support

connection: pjl://myprinter:9100?checklevel=sync

Example - printer connection with command

- printer: printercmd
  connection: 'command://'
  server: spooler1
  command:
    cmd: /code/bin/testout.sh
    args:
      - -printer
      - '{{printer.printer}}'
      - -printeruri
      - '{{printer.connection}}'
      - -file
      - '{{fileName}}'
      - -copies
      - '{{job.current.copies}}'
    expectedExitCodes:
      - 2
      - 0

config Key

config specifies the name of the printer configuration.

The key is optional.

Available values: String

Default: none


job Key

job has the sections default and override that can be used to define default job parameters for incoming jobs.

Job parameters in the section default will be used as defaults, i.e. if this parameter is not set in the job, the value set at the printer will be used.

Job parameters in the section override will always be used, regardless of the parameters set at the job. Example: DUPLEX is set to NONE at the job, but is set to LONG_SIDE in job.override: In this case, LONG_SIDE will be used.

The key is optional.

Default: none

Example - job settings

job:
  default:
    STAPLE_TYPE: OneUpLeft
    PUNCH_TYPE: Left
  override:
    DUPLEX: LONG_SIDE

jobMaxPostponedCount Key

jobMaxPostponedCount specifies how often a job for this printer will be postponed by the service in case the next service is not available for example. After exceeding the specified maximum of postponements, the job will be considered erroneous. This printer key overwrites the system-wide JOB_MAX_POSTPONED_COUNT system key for the specific printer.

The key is optional.

Available values: Integer

Default: The system-wide JOB_MAX_POSTPONED_COUNT service key


lastPageSaveInterval Key

lastPageSaveInterval specifies the number of pages after which the number of output pages is written to the database regularly. This key is only valid for PJL printers (pjl protocol). This printer-specific key overwrites the LAST_PAGE_SAVE_INTERVAL service key.

The key is optional.

Available values: Integer

  • <number_of_pages>

Default: 0 (= off)


lprFilter Key

When transmitting an output job via LPR, lprFilter specifies the filter to be used for processing the data by the receiver. For more information, refer to RFC 1179.

The key is optional.

Available values: String

Default: l


monitorConnection Key

monitorConnection specifies the IPP URL of the printer for monitoring its status. The URL includes the transfer protocol, the printer name and the port number.

The key is optional.

Available values: String

  • monitorConnection:<protocol>://<printer_name>:<port>/<queue_name>?<options>

Available values for <protocol>: String

  • ipp
  • http
  • https

Default: The value of connection and various sensible modifications of it are used for state monitoring.


monitorMode Key

monitorMode specifies if and when the physical status of a printer is checked. The value overwrites the system-wide service key PRINTER_MONITOR_MODE.

The key is optional.

Available values: String

  • AFTER_PRINT

    Check the status after printing a job

  • NEVER

    Never check the status

Default: NEVER

nativeQueue Key

nativeQueue specifies if all jobs for this printer are treated as native jobs.

The key is optional.

Available values: Boolean

Default: none


pageFailover Key

pageFailover specifies if an interrupted job is repeated at the page last printed or at the first page. This key is only valid for PJL printers (pjl protocol). It overwrites the PAGE_FAILOVER service key.

Hint - virtual printer

If printers within a virtual printer are configured differently, printers with page failover always start at the last printed page and printers without page failover always start at the first page.

The key is optional.

Available values: Boolean

  • true

    The job is repeated starting at the page printed last.

  • false

    The job is repeated starting at the first page.

Default: true


pickup Key

pickup specifies if the queue is a pickup queue.

The key is optional.

Available values: Boolean

Default: false


printerPageResponseTimeout Key

printerPageResponseTimeout specifies the time interval after which the connection to the printer is closed when the printer does not reply messages about the number of printed pages. The time interval has to be specified including the unit. The available units are listed at the top of the page. This printer-specific key overwrites the PRINTER_PAGE_RESPONSE_TIMEOUT service key.

The key is optional.

Available values: String

  • <time_interval_and_unit>

Default: none


printerResponseTimeout Key

printerResponseTimeout specifies the time interval after which the connection to the printer is closed when the printer does not reply any message. The time interval has to be specified including the unit. The available units are listed at the top of the page. This printer-specific key overwrites the PRINTER_RESPONSE_TIMEOUT service key.

The key is optional.

Available values: String

  • <time_interval_and_unit>

Default: 1m


Printer Settings Keys

The printer settings are key value pairs which describe printer settings. These printer settings can be used for further configuration.

Available values: String

  • <key>:<value>

Example - printer settings

adjustStapleType: true
adjustPunchType: true
rotateLandscapeA3: false

sapwinQueue Key

sapwinQueue specifies the name of the windows printer queue used for converting sapwin documents.

The key is optional.

Available values: String

Default: none


socketCloseTimeout Key

socketCloseTimeout specifies the time interval after which the socket is closed after sending a spool file to the printer unless the printer closes the connection. The time interval has to be specified including the unit. The available units are listed at the top of the page.

The key is optional.

Available values: String

Default: Value of the SOCKET_CLOSE_TIMEOUT service key


template Section

The template section contains the following keys and sections for the processing settings of the printer.

timeout Key

timeout specifies the time interval after which the conversion is aborted if the conversion does not provide any data. The time interval has to be specified including the unit. The available units are listed at the top of the page.

The key is optional.

Available values: String

Default: 120s

params Section

The params section contains the command line parameters for the conversion. For more information about the available command line parameters, refer to the documentation of the specific converter.

The key is mandatory.

Available values: Strings

Default: none

Example - conversion into PCL via Ghostscript

params:
  '-dBATCH',
  '-dNOPAUSE',
  '-dQUIET',
  '-dSAFER',
  '-sstdout=%stderr',
  '-sDEVICE=plspcl',
  '-sOutputFile=-',
  '-'

gyros Section

The gyros section contains objects with rule groups for an output device used in the rule management from SEAL Systems (Ghostscript YAML Rules Output System).

The key is optional.

Available values: String

Default: none

Example - Job Start UEL + Jobname + Username object

- name: Job Start UEL + Jobname + Username
  context: startJob
  prefix: Init=
  rules:
    - condition: true
      action: |
        Init=\\033%-12345X@PJL JOB NAME="${job.JOBNAME}"\\n
        Init=@PJL SET JOBNAME="${job.JOBNAME}"\\n
        Init=@PJL SET USERNAME="${job.USERNAME}"\\n
name Key (gyros Section)

name specifies the name of the rule group.

The key is mandatory.

Available values: String

Default: none

context Key

context specifies the context in which a role group is executed. The context depends on the current processing step of the output job.

The key is mandatory.

Available values: String

  • startJob
  • startSetup
  • endSetup
  • startPage
  • endJob

Default: none

prefix Key

prefix specifies the prefix inserted at the beginning of each line of the string specified in action.

The key is optional.

Available values: String

Default: empty string

rules Section

The rules section contains the implementation of the specific rule using condition, action, escape.

The section is mandatory.

Default: none


virtual Section

The virtual section contains objects with the configuration of the virtual queues. The configuration settings depend on the type of the virtual queue.

The key is optional.

Available values: String

Default: none

use case description of virtual queues

For how to set up and configure virtual queues, refer to Use Virtual Queues.

type Key (virtual Section)

type specifies the type of the virtual queue.

The key is mandatory.

Available values: String

  • failover

    The virtual queue is a failover queue.

    Example - failover queue

    - printer: myFailoverQueue
      connection: 'virtual://'
      template:
        virtual:
          type: 'failover'
          queues:
            - printer1
            - printer2
    
  • loadbalancer

    The virtual queue is a loadbalancer queue.

    Example - loadbalancer queue

    - printer: myLoadbalancerQueue
      connection: 'virtual://'
      template:
        virtual:
          type: 'loadbalancer'
          queues:
            - printer3
            - printer4
    
  • router

    The virtual queue is a router queue.

    For examples of the route configuration, refer to the routes key.

Default: none

queues Key (virtual Section)

queues specifies a list of target queues for failover or loadbalancing.

The key is mandatory if the queue type is failover or loadbalancer.

Available values: List of strings

Refer to the example in the virtual section.

Default: none

Caution - all queues

With a virtual failover queue, all queues involved have to be configured in PLOSSYS 5. Otherwise, the jobs for the virtual queue will terminate as erroneous.

routes Key (virtual Section)

routes specifies a list of routes. Each route contains a condition and a queue.

condition is a string which is interpreted as JavaScript code returning a Boolean value. Hereby, the job object can be used for the job to be output and the origPrinter variable contains the name of the original virtual printer. For a detailed description of the job object, refer to job object used in the route condition of a virtual queue.

queue is the target queue to be taken if the condition returns true.

The key is mandatory if the queue type is router.

Available values: List of objects containing a condition and a queue

Default: none

Example - routing by size, color and duplex

- printer: myRouterQueue1
  connection: 'virtual://'
  template:
    virtual:
      type: 'router'
      routes:
          # Color jobs go to printer1
        - condition: job.COLOR_MODEL[0] === 'COLOR'
          queue: printer1
          # Duplex b/w jobs go to printer2
        - condition: job.DUPLEX === 'LONG_SIDE'
          queue: printer2
          # All other jobs go to printer3
        - condition: true
          queue: printer3

Example - routing by size and color

- printer: myRouterQueue2
  connection: 'virtual://'
  template:
    virtual:
      type: 'router'
      routes:
          # Color jobs with a size less or equal DIN A4 go to printer1
        - condition: job.getMaxPage().le('a4') && job.COLOR_MODEL[0] === 'COLOR'
          queue: printer1
          # Gray-scaled jobs with a size less or equal DIN A4 go to printer2
        - condition: job.getMaxPage().le('a4') && job.COLOR_MODEL[0] === 'GRAY'
          queue: printer2
          # Jobs with a size larger than DIN A4 go to printer3
        - condition: true
          queue: printer3

Hint - relevant order

The order of the specified routes is relevant due to the first match will be used. For example, with the following configuration, a DIN A4 color job will be output to printer1, although printer2 would make more sense.

- condition: job.COLOR_MODEL[0] === 'COLOR'
  queue: printer1
- condition: job.COLOR_MODEL[0] === 'COLOR' && job.getMaxPage().le('a4')
  queue: printer2
- condition: true
  queue: printer3

After changing the order of the routes, the job will be output to printer2.

- condition: job.COLOR_MODEL[0] === 'COLOR' && job.getMaxPage().le('a4')
  queue: printer1
- condition: job.COLOR_MODEL[0] === 'COLOR'
  queue: printer2
- condition: true
  queue: printer3
strict Key (virtual Section)

strict specifies if the router will stop processing the list of conditions after having found the first match or process the whole list of conditions.

The key is optional.

Available values: Boolean

  • true

    The router will stop after the first match and add only the found queue to the queue list.

  • false

    The router will process the whole list of conditions and add all matching queues to the queue list.

Default: false

Example - strict router queue

- printer: myRouterQueue3
  connection: 'virtual://'
  template:
    virtual:
      type: 'router'
      strict: true
      routes:
          # Jobs with a size less or equal DIN A4 go to printer 1
        - condition:job.getMaxPage().le('a4')
          queue: printer1
          # All other jobs go to printer2
        - condition: true
          queue: printer2

type Section

The type section contains the following keys and sections concerning the printer type.

name Key (type Section)

name specifies the complete name of the printer model.

The key is mandatory.

Available values: String

Default: none

Example - complete printer name

HP Laserjet 4050

manufacturer Key

manufacturer specifies the name of the printer manufacturer.

The key is mandatory.

Available values: String

Default: none

Example - manufacturer

Hewlett-Packard

model Key

model specifies the name of the printer model.

The key is mandatory.

Available values: String

Default: none

Example - printer model

4050

pdl Section

The pdl section contains the following keys for the printer description languge.

name Key (pdl Section)

name ìn the pdl section specifies the printer language.

The key is mandatory.

Available values: String

  • postscript

  • pcl

  • pdf

Default: none

version Key

version specifies the version of the printer description language.

The key is mandatory.

Available values: String

Default: none

Example - printer description language

    pdl: {
      name: 'postscript',
      version: '2.0'
    }
    pdl: {
      name: 'pcl',
      version: '5'
    }

useCopier Key

useCopier specifies if the seal-copier service is used for resolving the job copies by sending the document data multiple times to the printer. Normally, the job copies are resolved by the printer itself.

The key is optional.

Available values: String

  • Y

    The seal-copier service resolves the job copies.

  • N

    The seal-copier service does not resolve the job copies.

Default: N


webURL Key

webURL specifies the URL under which the printer can be reached.

The key is optional.

Available values: String

Default: none

Back to top