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 Output Engine.


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:


alignment Key

alignment specifies the alignment of the ouput job on the target format, if the target format is larger than the output job format. The key is only used for printers with configured ppd.

The key is optional.

Available values: String

  • center

    Horizontal alignment center, vertical alignment center

  • left

    Horizontal alignment left, vertical alignment center

  • bottom

    Horizontal alignment center, vertical alignment bottom

  • right

    Horizontal alignment right, vertical alignment center

  • top

    Horizontal alignment center, vertical alignment top

  • leftbottom

    Horizontal alignment left, vertical alignment bottom

  • rightbottom

    Horizontal alignment right, vertical alignment bottom

  • lefttop

    Horizontal alignment left, vertical alignment top

  • righttop

    Horizontal alignment right, vertical alignment top

Default: 'center'


printer Key

printer specifies the name of the output device in the Output Engine 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

Example - printer connections 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

pauseAfterPrint Key

pauseAfterPrint specifies a pause in milliseconds after each print job. This key is only valid for PJL printers (pjl protocol). This printer-specific key overwrites the PAUSE_AFTER_PRINT service key.

The key is optional.

Available values: Integer

  • <pause in msec>

Default: 0 (= off)

Hint - remote printers

This key has no effect for pjl printers at a remote site.


pickup Key

pickup specifies if the queue is a pickup queue.

The key is optional.

Available values: Boolean

Default: false


ppd Key

ppd specifies the name of the printer PPD configuration.

The key is optional.

Available values: String

Default: none

!!! Example - printer configuration with ppd Key

- printer: P50-ROE-HP2055-001
  connection: 'socket://10.49.31.5:9100'
  rotation: 0
  alignment: center
  tolerance: 0.0
  ppd: small_format.ppd
  ...

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

rotation Key

rotation specifies the counterclockwise rotation of the output job in increments of 90 degree. The key is only used for printers with configured ppd.

The key is optional.

Available values: String

  • 0|90|180|270: rotation in degree counterclockwise.
  • 1000|1090: automatic rotation by 0 or 90 degree counterclockwise
  • 1270: automatic rotation by 0 or 270 degree counterclockwise
  • 2000|2090: automatic rotation by 180 or 90 degree counterclockwise
  • 2270: automatic rotation by 180 or 270 degree counterclockwise

Default: '1090'


remoteSite Key

If the printer is located on a remote site, remoteSite specifies the name of the remote site. The key is also used for logfiles and accounting.

The key is optional.

Available values: String

Default: none


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


scaleMode Key

scaleMode specifies the automatic scaleing type. The key is only used for printers with configured ppd.

scaleMode can be specified for the job and for the printer as well. If scaleMode is specified for both, the job parameter will have precedence over the printer parameter.

The key is optional.

Available values: String

  • fitMediaSize: Downscale to media size, no upscale, clip to printable area

  • fitPrintArea: Downscale to printable area, no upscale, no clipping

  • clip: No downscale, no upscale, clip to printable area

  • fillFit: Downscale to printable area, upscale to printable area, no clipping

  • fill: Downscale to media size, upscale to media size, clip to printable area

  • noScale: no downscale, no upscale, no clipping

Default: 'fitMediaSize'


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

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

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

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 Output Engine. Otherwise, the jobs for the virtual queue will terminate as erroneous.

routes Key

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

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

tolerance Key

tolerance specifies the tolerance for selecting a format, unit is in default mm. The key is only used for printers with configured ppd.

The key is optional.

Available values: String

Default: '6.5'

Hint - output Letter onto A4 and vice versa

Contrary to PLOSSYS 4, PLOSSYS Output Engine will not automatically print Letter format onto A4 and vice versa. If available, PLOSSYS Output Engine will use the next larger format instead. If no larger format is available, PLOSSYS Output Engine will act the same as PLOSSYS 4.

For many printers you can specify in their settings, if Letter and A4 formats should be treated as the same. If your printer has this option, no additional changes have to be made in PLOSSYS Output Engine. If this option is not available, you can do the following:

Increase the tolerance value to 7.5 to always output Letter onto A4 even if larger formats are available.

Increase the tolerance value to 13.3 to always output A4 onto Letter even if larger formats are available. When doing so, the scaleMode should be set to fitPrintArea, otherwise too much content will be lost.


type Section

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

name Key

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

name in 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