Configure a Script as Job Output¶
Instead of outputting a job to a printer, you can execute a script. For example, this can be a script for copying the spool file to the file system or for sending the spool file via e-mail.
The printer configuration is kept in the database. For the available printer configuration keys, refer to Printer Keys.
Usually, easyPRIMA is used for changing the printer configuration. For more information, refer to the easyPRIMA documentation. Alternatively, the printer configuration can be exported, imported and changed via PLOSSYS CLI.
This is how you specify a script as job output:
-
Specify
command://
in theconnection
printer key. -
Add the
command
section. -
In
command
, specify the name of the command or script withcmd
. -
Specify the script or command parameters with
args
. ThefileName
parameter is required and contains the name of the spool file. Additionally, you can pass any printer parameter (printer.xxx
) and job parameter (job.xxx
) to the script. The parameters have to be enclosed in double curly brackets{
.Example - copies
{{job.current.copies}}
-
Optionally, specify the return codes of the script to be interpreted as success. By default,
0
is interpreted as success.
Example - printer connection with command
calling a bash script
- printer: printercmd
connection: 'command://'
server: spooler1
command:
cmd: /code/bin/testout.sh
args:
- -printer
- '{{printer.printer}}'
- -file
- '{{fileName}}'
- -copies
- '{{job.current.copies}}'
expectedExitCodes:
- 2
- 0
Example - printer connection with command
calling a PowerShell script
- printer: printercmd
connection: 'command://'
server: spooler1
command:
cmd: powershell
args:
- -Command
- C:\\mynicefolder\\myniceps.ps1
- -printer
- '{{printer.printer}}'
- -file
- '{{fileName}}'
- -copies
- '{{job.current.copies}}'
expectedExitCodes:
- 2
- 0
With the following command, the call of the PowerShell script above can be checked:
write "There are a total of $($args.count) arguments" | Out-File C:\tmp\out.txt
for ( $i = 0; $i -lt $args.count; $i++ ) {
write "Argument $i is $($args[$i])" | Out-File C:\tmp\out.txt -Append
}