Multi-Page Content
Tables across pages
Tables automatically break across pages. If you define a <TableHead>, it repeats on each new page:
<Table>
<TableHead>
<Tr><Td><Paragraph><Value>Header</Value></Paragraph></Td></Tr>
</TableHead>
<!-- Hundreds of rows... they'll flow to new pages automatically -->
</Table>Individual table cells are never split – each cell is rendered as a single box. If a row doesn’t fit on the current page, it moves to the next one.
Page breaks
Force a new page with <ClearPage>:
<Record match="catalog">
<ForAll select="category">
<ProcessNode select="."/>
<ClearPage/>
</ForAll>
</Record>Frame switching
If an area has multiple frames, use <NextFrame> to jump to the next one:
<NextFrame area="text"/>If there’s no next frame, a page break is inserted and content continues in the first frame of the area on the new page.
Positioning frames for multi-column layouts
Define multiple frames within a single area to create flowing multi-column layouts:
<DefineMasterPage name="threeColumn" test="true()" margin="1cm">
<PositioningArea name="text">
<PositioningFrame width="5" height="20" row="1" column="1"/>
<PositioningFrame width="5" height="20" row="1" column="7"/>
<PositioningFrame width="5" height="20" row="1" column="13"/>
</PositioningArea>
</DefineMasterPage>Content placed in the “text” area fills the first column, then flows to the second, then the third. When all three are full, a new page is created and the cycle repeats.