JavaScript based imposition runlists

For a very long time, pdfToolbox has supported a full imposition engine, that was driven entirely by using three types of files:

  • Sheet configuration files (extension .sheetconfig) to define the dimensions of imposed sheets and to define slots (rectangular areas on those sheets where information could be placed).
  • Runlist files (extension .runlist) to define how the pages of an incoming file should be placed on the imposed sheets.
  • Background files (extension .sheetconfig.pdf) to provide a background onto which to impose the information as stated in the sheet configuration and runlist files. This is an optional file; if it's not there the imposition happens on blank sheets.

The sheet configuration and runlist files use a tab-delimited format using callas specific keywords and functions.

Introducing JavaScript

In pdfToolbox 13, callas introduced a new format for runlists, where JavaScript is used instead of the custom tab-delimited scripting language invented by callas long ago. JavaScript is only used in the runlists, there are no changes to sheet configuration or background files. Due to the nature of the JavaScript implementation, it is possible to skip creating a sheet configuration file though (and background files where always optional already).


Nothing really changes from a compatibility point of view. Old-style runlist files are still fully supported and will continue to be for the foreseeable future. The use of JavaScript is entirely optional.

Even if using JavaScript in your runlist, you can still continue to define imposed sheets and slots using a sheet configuration file. The sheet definitions in it can be used in the JavaScript runlist.

And background files continue to function as before.