Creating an Imposition configuration
Creation of a Sheet Setup Configuration
Requirement
Impose 4 pages A5 on a press sheet with a dimension of 468mm by 315 using a "cut and stack" imposition method. The imposed PDFs shall be centered on the press sheet with no cutting gap (extra distance between the imposed pages)
1) .sheetconfig
Create a text file called "468x315_4up_upright_A5.sheetconfig".
The first line has to define the name. In our example it looks like this:
NAME 468x315, 4up A5, upright
This file contains the positions (slots) on the press sheet where the PDFs get placed. Each line in this file represents a slot. All entered values have to be Tab-delimited. The sequence of the needed values are described in "Sheet definition (Sheet Setup)" in this section.
2) Template size
We are imposing on a blank sheet. this means we do not need an extra template PDF but we need to define the sheet size. In our example the line looks like this:
SHEET 0mm 0mm 468mm 315mm
3) Mathematics
Next calculate the positions of the lower left corner of the first trimmed pages on the press sheet.
Since the total width of the 2 A5 landscape pages is 420 mm (2 x 210mm), the first page starts at 24mm from the left page boarder. This is the x-axis (468 - 420 = 48 divided by 2 = 24).
The start on the y-axis is then at 9.5mm = (315-(148+148))/2
If additional cutting gap is needed, it has to add it when calculating the total height or width of the imposed pages. It is recommended to prepare a little drawing with the values on it.
Our first slot on the (first) template sheet starts a 24mm/9.5mm and has a dimension of 210mm/148mm.
If we need bleed around the imposed pages and the current slot is the lower/left slot on our imposed sheet, bleed is only possible on the left and the bottom border. We must not define any bleed on the right and upper border, since it would reach into the trimmed are of the adjacent slot as there is no cutting gap in between.
Example: 3mm bleed
The next entries in the SheetTemplateConfig allow for scaling and rota-tion of the content of the slot. You would enter rotation for 2 of the 4 slots, that we are going to define, if you would create a regular 4up imposition schema where you need the pages to be placed head-to-head.
Example: We need the pages to be placed at 100% with no rotation.
The next entry defines which "hot-spot" of the placed PDF page shall be positioned at which "hot-spot" of the slot. This has no relevance if the slot dimension and the trimmed PDF page dimension is the same. But if the trimmed size was smaller for example, you had to define where the page shall be positioned within the larger slot area.
Example: RT (right top corner)
The next entry defines where at which edge creep shall be applied. This is currently not fully supported and I therefore recommend to enter the value "N", which stands for "None".
The last four entries are to define cut marks positions. Every corner of a slot can have cut marks defined. If you image the imposed page and the slot 1 (lower left on the sheet), we would need cut marks at the following positions:
Bottom left corner |
LB |
Cut mark going left and down |
Bottom right corner |
B |
Cut mark going down (left is an adjacent page) |
Top right corner |
N |
No cut mark (this is the area where all 4 imposed pages meet) |
Top left corner |
L |
Cut mark going left (up is an adjacent page) |
- Note: Please note that the following examples have to be pasted into one line without line breaks. A new line is always marked with the keyword "Slot".
The resulting line in the config file now looks like that:
Slot Slot_LB 1 1 24mm 9.5mm 210mm 148mm 3mm 3mm 0mm 0mm 100 100 0 RT N LB B N L
For the next slot we have to calculate the next start coordinate and adjust the bleed and the cut marks accordingly. If we decide to place slot 2 right of slot 1, the line entered looks like that:
Slot Slot_RB 2 1 234mm 9.5mm 210mm 148mm 0mm 3mm 3mm 0mm 100 100 0 RT N B RB R N
For the next 2 slots (slot 3 being placed above slot 1) the entries look like that:
Slot Slot_LT 3 1 24mm 157.5mm 210mm 148mm 3mm 0mm 0mm 3mm 100 100 0 RT N L N T LT
Slot Slot_RT 4 1 234mm 157.5mm 210mm 148mm 0mm 0mm 3mm 3mm 100 100 0 RT N N R RT T
Since front page and back page of the imposed sheet use the same geom-etry (imposed pages are centered on the press sheet), we do not need to add extra positions for sheet 2.
Our sheet template is now ready.
6) Usage
For the Server/CLI version the folder is
<CLI folder>/var/Actions/Impose
For the Desktop version and starting pdfToolbox 13, you can edit the sheet configuration directly in the Switchboard Action:
- The best way is to duplicate an existing configuration and work on that
Up until pdfToolbox 12:
To use this template in the Desktop version of pdfToolbox, copy the just created settings folder into the following folder inside your user preferences:
callas software/callas pdfToolbox <version>/etc/Actions/Impose
Creation of a Run List Configuration
The runlist defines, which page of a PDF has to be placed on which sheet at what position (slot).
1) RunList.runlist
Now create a 2nd text file with the name "4pages_cutstack.runlist": The first line has to define the name. In our example it looks like this:
Name 4 pages, cut & stack
followed by:
2) Global Settings
First we define some global settings. This is:
Set CropMarkLength "2,0mm"
Set CropMarkWidth "0,04mm"
Set CropMarkGap "2,5mm"
Set ShinglingOffset "0,00mm"
Set RunListTerminationMode 2
Set CropMarkColorSpace "DeviceCMYK"
Set CropMarkColorValues "0/0/0/100"
- Note: Do not forget to separate the parameters, the key words and the values using the
<Tab>
-Key.
RunListTerminationMode is used to make sure the the engine fills each printed sheet, if necessary with blank pages, if there are too little pages in the original PDF file as are needed for imposition.
3) Mathematics
Since we need a multiple of 4 pages in order to impose the sheet, we have to do some math. This math is also needed, since we do a cut & stack imposition where we need to know the page count difference between the first page and the adjacent imposed page. The following formula is for sin-gle sided printing. At the end I give an example for work and turn printing.
Set c (var('LastPage')%4)
I check to see if the pagecount can be divided by 4.
Set y if(var('c'),4-var('c'),0)
Now I fill up to have a "virtual" pagecount that can be divided by 4.
Set c1 (var('LastPage')+var('y'))/4
Now I calculate the value we need to increment between each facing page on an imposed sheet.
Set LastPage var('c1')
This use of LastPage is defined later.
Another method do have the page count as a multiple of 4 is to use the former defined "SheetConfig.runlist" file of the Sheet setup. You get the same result if you enter there the number 4 instead of 1. The downside of that is, that this sheet config is now limited to be used with a minimum of 4 pages and can not be used for example for step & repeat, where 1 page in a PDF file is already enough to fill the press sheet.
4) Sheet content
Now we have to fill the sheets with content. This is done starting with a loop command using the script language of the runlist.
So the next command is:
Loop |
This marks the position in the script to jump back to when the engine hits the end of the runlist file, put still has pages left to impose |
Next we need a new press sheet using
NewSheet
Now we are ready to position a page on the sheet. This is done by:
PositionPage FirstPage Slot_3
FirstPage currently refers to the first page of the PDF being processed. This page is placed at Slot 3 of the sheet template as we defined it above (which is the upper left slot)
Since PositionPage only works with any of the three page pointers, which are FirstPage, MidPage and LastPage, we have to set them to the proper values.
In our example I go ahead with MidPage. For that, I define which page should get placed next to the already positioned page. The variable "c1" holds the value that is needed to increment the page pointer.
Set MidPage var('FirstPage')+var('c1')
Now position the page in a slot (upper right slot):
PositionPage MidPage Slot_4
We have now filled the first row of the press sheet. Now we go ahead with the 2 remaining slots:
Set MidPage var('MidPage')+var('c1') PositionPage MidPage Slot_1
Set MidPage var('MidPage')+var('c1') PositionPage MidPage Slot_2
At the end we increment FirstPage. This has 2 reasons:
- At every new press sheet, we start by positioning FirstPage. FirstPage therefore has to have the correct page number.
- If FirstPage is higher or equal to LastPage, the process is finished and the imposed sheets are ready. LastPage is calculated in such a way, that it works for the needed cut & stack imposition schema. This is also the reason why working with MidPage while filling the press sheet. If using FirstPage (LastPage being set to the original LastPage div 4) the engine would stop after the first press sheet since FirstPage had a value higher than LastPage.
Finally, the content of the "RunList.runlist" file is:
Name 4pages, cut and stack
Set CropMarkLength "2,0mm"
Set CropMarkWith "0,04mm"
Set ShinglingOffset "0,025mm"
Set RunListTerminationMode 2
Set CropMarkColorSpace "DeviceCMYK"
Set CropMarkColorValues "0/0/0/100"
Set c (var('LastPage')%4)
Set y if(var('c'),4-var('c'),0)
Set c1 (var('LastPage')+var('y'))/4
Set LastPage var('c1')
Loop
NewSheet
PositionPage FirstPage Slot_3
Set MidPage var('FirstPage')+var('c1')
PositionPage MidPage Slot_4
Set MidPage var('MidPage')+var('c1')
PositionPage MidPage Slot_1
Set MidPage var('MidPage')+var('c1')
PositionPage MidPage Slot_2
Set FirstPage var('FirstPage')+1
5) Usage
For the Server/CLI version, the folder is
<CLI folder>/var/Actions/Impose
For the Desktop version and starting pdfToolbox 13, you can edit the runlist configuration directly in the Switchboard Action:
- The best way is to duplicate an existing configuration and work on that
Up until pdfToolbox 12: To use this template in the Desktop version of pdfToolbox, copy the just created settings folder into the following folder inside your user prefer-ences:
callas software/callas pdfToolbox <version>/etc/Actions/Impose
6) Process PDF
If you now open a PDF, choose the "Impose" Action from pdfToolbox, and you should see the 2 configurations just created.
Runlist for Work & Turn Printing (2 sided imposition)
If we would do a work & turn printing, we need a multiple of 8 pages to impose a sheet (4 pages per side).
Here is the formula for that:
Set c (var('LastPage')%8)
Set y if(var('c'),8-var('c'),0)
Set c1 (var('LastPage')+var('y'))/4
Set LastPage var('c1')
And we have to place the page on the back page of the imposed sheet in a slightly different order to have them in the right position for a work & turn printing:
Loop
NewSheet
PositionPage FirstPage Slot_3
Set MidPage var('FirstPage')+var('c1')
PositionPage MidPage Slot_4
Set MidPage var('MidPage')+var('c1')
PositionPage MidPage Slot_1
Set MidPage var('MidPage')+var('c1')
PositionPage MidPage Slot_2
Set FirstPage var('FirstPage')+1
Up to here it is the same, but now it changes a little bit:
Now we need a new sheet:
NewSheet
and fill it in a slightly different order:
PositionPage FirstPage Slot_4
Set MidPage var('FirstPage')+var('c1')
PositionPage MidPage Slot_3
Set MidPage var('MidPage')+var('c1')
PositionPage MidPage Slot_2
Set MidPage var('MidPage')+var('c1')
PositionPage MidPage Slot_1
Set FirstPage var('FirstPage')+1
An alternate method for the work & turn would have been to create a dif-ferent sheet setup which defines 2 sheets, where the names of the slots on the 2nd sheet are changed in such a way, that it can get filled using the first runlist.
- Note: It depends on your personal liking if you would prefere to have less sheet configs and more Runlists or the other way round.
More versatile Runlist
Here is an extended runlist where you just need to change the content of the 2 variables. This way it is more easy to adapt the runlist.
General variables
Name 4pages, cut and stack, duplex
Set CropMarkLength "2,0mm"
Set CropMarkWith "0,04mm"
Set CropMarkGap "2,5mm"
Set ShinglingOffset "0,0mm"
Set RunListTerminationMode 2
Set CropMarkColorSpace "DeviceCMYK"
Set CropMarkColorValues "0/0/0/100"
Please set accordingly
Set PagesPerSide 4 Set NumberOfSides 2
And here begins the imposition myth...
Set c (var('LastPage')%(var('PagesPerSide')* var('NumberOfSides')))
Set y if(var('c'),(var('PagesPerSide')* var('NumberOfSides'))-var('c'),0)
Set IncrCount (var('LastPage')+var('y'))/ var('PagesPerSide')
Set LastPage var('IncrCount')
Loop
NewSheet
PositionPage FirstPage Slot_3
Set MidPage var('FirstPage')+var('IncrCount')
PositionPage MidPage Slot_4
Set MidPage var('MidPage')+var('IncrCount')
PositionPage MidPage Slot_1
Set MidPage var('MidPage')+var('IncrCount')
PositionPage MidPage Slot_2
Set FirstPage var('FirstPage')+1
Set Condition var('NumberOfSides') -1
If Var("Condition")
NewSheet
PositionPage FirstPage Slot_4
Set MidPage var('FirstPage')+var('IncrCount')
PositionPage MidPage Slot_3
Set MidPage var('MidPage')+var('IncrCount')
PositionPage MidPage Slot_2
Set MidPage var('MidPage')+var('IncrCount')
PositionPage MidPage Slot_1
Set FirstPage var('FirstPage')+1 EndIf