2018.2

Table Of Contents
Dynamically adding sections (cloning)
This topic explains how to clone a section in a Control Script. Print sections can be cloned, so
that a document can have a dynamic number of sections, based on data. This is particularly
useful when the record set defines one or more PDFs (e.g. insurance policies) per recipient.
Via a Control Script, for each PDF a section can be cloned and each clone can be given one of
the PDFs as background (see "Control Script: Setting a Print section's background" on
page376). For each page in the PDF, a page will be added to the section.
For information about Control Scripts in general, see "Control Scripts" on page369 and
"Control Script API" on page749. If you don't know how to write scripts, see "Writing your own
scripts" on page340.
Cloning a section
To clone a section, first use the clone() function and then add the clone to the Print context
before or after a specific section, using addAfter() or addBefore():
var printSections = merge.template.contexts.PRINT.sections;
var clone = printSections["Section 1"].clone();
printSections["Section 1"].addAfter(clone);
Cloned sections have the same properties as normal sections, but they cannot call section
functions.
Note that with multiple clones, the next clone is always added after the previous clone.
With addBefore(), the code original.addBefore(clone1); original.addBefore(clone2); will
result in "clone1, clone2, original".
With addAfter() the code original.addAfter(clone1); original.addAfter(clone2);" results
in "original, clone1, clone2".
Note
Calling clone() multiple times before calling addAfter() or addBefore() currently
won't work, as each next clone will get the same default name and replaces the previous clone. To
avoid this you should either explicitly assign a unique name to each clone (i.e. not rely on the
default name), or call addAfter() or addBefore() before calling clone() again.
Page 379