Expand my Community achievements bar.

July 31st AEM Gems Webinar: Elevate your AEM development to master the integration of private GitHub repositories within AEM Cloud Manager.

Adobe form - Pages - Table layout into multiple page


Level 1


I have an Adobe form that can be displayed on 1 or multiple pages.

The Adobe form is composed of a header, a table, a total, a "References" block and a footer.

The header and the footer are present on each page.

The "References" block is only displayed on the last page.

The number of pages depends on the number of items into the table.

For example :

a) 1 page




b) 2 pages




My problem :

If the Adobe form contains various pages, logically, the table has to be displayed on various pages. Two things have to be taken into account :

  • In the table, each item has a description which may contain 1 to various lines.

For example :




  • Each table on each page must have the same size.

I think it would be laborious to control how many lines each item contains.

I would like to put the "References" block only on the last page and keep the same size for each part of the table on the multiple-pages document.

Does anyone have a solution for this ?

Thank you !






1 Reply


Level 10



it's not that difficult to keep tables the same size. The layout processor can determine the exact size of every object via script. This can be used to "transfer" the value to other objects.


This is a calculate script to copy the cell heights of Table1 over to Table2. 

You possible have to modify this script to work with your form. 


var cUnit = "mm",
nCellHeight = -1,
oInputRows = Table1.resolveNodes('#subform.[layout eq "row"]'),
oOutputRow = Table2.resolveNodes('#subform.[layout eq "row"]'),

if (oInputRows.length === oOutputRow.length) {
for (i = 0; i < oInputRows.length; i += 1) {

// get the height of the first draw object in the row

nCellHeight = xfa.layout.h(oInputRows.item(i).resolveNode('#draw'), cUnit);

// set the same height to the first draw object in the other table

oOutputRow.item(i).resolveNode('#draw').h = nCellHeight.toString().concat(cUnit);

// Recreate the layout, to see the effects



The visibiliy of the reference block can be easily set. You only need to determine if it's on the last page or not. Put this into the layout:ready event of the reference object.

this.presence = (xfa.layout.page(this) < xfa.layout.pageCount()) ? "invisible" : "visible";