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:
alignmentKeyprinterKeyconnectionKeyconfigKeyjobKeyjobMaxPostponedCountlastPageSaveIntervalKeylprFiltermonitorConnectionKeymonitorModeKeynativeQueueKeypageFailoverKeypauseAfterPrintKeypickupKeyppdKeyprinterPageResponseTimeoutKeyprinterResponseTimeoutKey- Printer Settings Keys
rotationKeyremoteSiteKeysapwinQueueKeyscaleModeKeysocketCloseTimeoutKeytemplateSectiontoleranceKeytypeSectionuseCopierKeywebUrlKey
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
-
centerHorizontal alignment
center, vertical alignmentcenter -
leftHorizontal alignment
left, vertical alignmentcenter -
bottomHorizontal alignment
center, vertical alignmentbottom -
rightHorizontal alignment
right, vertical alignmentcenter -
topHorizontal alignment
center, vertical alignmenttop -
leftbottomHorizontal alignment
left, vertical alignmentbottom -
rightbottomHorizontal alignment
right, vertical alignmentbottom -
lefttopHorizontal alignment
left, vertical alignmenttop -
righttopHorizontal alignment
right, vertical alignmenttop
Default: 'center'
analyzePdfPageSizes Key¶
analyzePdfPageSizes specifies if incoming PDF files for this printer are to be analyzed to detect the page sizes. This printer key overwrites the system-wide environment key ANALYZE_PDF_PAGE_SIZES for the specific printer.
The key is optional.
Available values: Boolean
Default: false
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
commandhttphttpsippippslprpjlsocketvirtual
Available values for <port>: Integer
Default:
515for lpr9100for socket and pjl80for http631for ipp443for 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:
streamspecifies whether the data is streamed. Withstream=false, jobs can be output via LPR to a Windows Print Server.
Available options - only for pjl:
checklevelspecifies the level of the PJL protocol supported by the printer:checklevel=fullspecifies full PJL support. This is the default if no check level has been specified.checklevel=syncspecifies restricted PJL support using the@PJL ECHOmessage.checklevel=nonespecifies no PJL support. This is equal to thesocketprotocol.
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
-
fOutput the formatted file: RFC 1179 - 7.19
-
lOutput the file leaving control characters: RFC 1179 - 7.22
-
pOutput the file with
prformats: RFC 1179 - 7.25 -
rOutput the file with FORTRAN carriage control: RFC 1179 - 7.26
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
ipphttphttps
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_PRINTCheck the status after printing a job
-
NEVERNever 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
-
trueThe job is repeated starting at the page printed last.
-
falseThe 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 counterclockwise1270: automatic rotation by 0 or 270 degree counterclockwise2000|2090: automatic rotation by 180 or 90 degree counterclockwise2270: 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
startJobstartSetupendSetupstartPageendJob
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
-
failoverThe virtual queue is a failover queue.
Example -
failoverqueue- printer: myFailoverQueue connection: 'virtual://' template: virtual: type: 'failover' queues: - printer1 - printer2 -
loadbalancerThe virtual queue is a loadbalancer queue.
Example -
loadbalancerqueue- printer: myLoadbalancerQueue connection: 'virtual://' template: virtual: type: 'loadbalancer' queues: - printer3 - printer4 -
routerThe virtual queue is a router queue.
For examples of the route configuration, refer to the
routeskey.
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
-
trueThe router will stop after the first match and add only the found queue to the queue list.
-
falseThe 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
-
YThe
seal-copierservice resolves the job copies. -
NThe
seal-copierservice 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