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
Keyprinter
Keyconnection
Keyconfig
Keyjob
KeyjobMaxPostponedCount
lastPageSaveInterval
KeylprFilter
monitorConnection
KeymonitorMode
KeynativeQueue
KeypageFailover
KeypauseAfterPrint
Keypickup
Keyppd
KeyprinterPageResponseTimeout
KeyprinterResponseTimeout
Key- Printer Settings Keys
rotation
KeyremoteSite
KeysapwinQueue
KeyscaleMode
KeysocketCloseTimeout
Keytemplate
Sectiontolerance
Keytype
SectionuseCopier
KeywebUrl
Key
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 alignmentcenter
-
left
Horizontal alignment
left
, vertical alignmentcenter
-
bottom
Horizontal alignment
center
, vertical alignmentbottom
-
right
Horizontal alignment
right
, vertical alignmentcenter
-
top
Horizontal alignment
center
, vertical alignmenttop
-
leftbottom
Horizontal alignment
left
, vertical alignmentbottom
-
rightbottom
Horizontal alignment
right
, vertical alignmentbottom
-
lefttop
Horizontal alignment
left
, vertical alignmenttop
-
righttop
Horizontal alignment
right
, vertical alignmenttop
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 lpr9100
for socket and pjl80
for http631
for ipp443
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. Withstream=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 thesocket
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
-
f
Output the formatted file: RFC 1179 - 7.19
-
l
Output the file leaving control characters: RFC 1179 - 7.22
-
p
Output the file with
pr
formats: RFC 1179 - 7.25 -
r
Output 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
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 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 (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 Output Engine. 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
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 (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
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