Skip to content

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:

  1. Specify command:// in the connection printer key.

  2. Add the command section.

  3. In command, specify the name of the command or script with cmd.

  4. Specify the script or command parameters with args. The fileName 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}}

  5. 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
}

Back to top