Hola,
No estoy seguro si existen métodos dentro de JasperReports para manipular la estructura del reporte, pero dependiendo de la complejidad de tu aplicación podrías crear o modificar el archivo .jrxml con código, con alguna librería de XML como xerces o algo parecido.
Los reportes de IReport son almacenados en XML, puedes crear el documento XML externamente y transferirlo al compilador Jasper para validar el reporte. Puedes crear un documento en IReports y ver el resultado del archivo .jxrml almacenado en el disco con un editor de textos.
Tendrías que probar mucho para ver todas las opciones, realmente estarías haciendo un programa parecido a IReport así que podrías revisar el código de IReport para ver si existe una funcionalidad mas simple de realizarlo.
Por ejemplo, el encabezado y el header de un archivo .jxrml creado con IReport:
Código XML:
Ver original<?xml version="1.0" encoding="UTF-8" ?>
<!-- Created with iReport - A designer for JasperReports -->
<!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport
name="jaspReport01"
columnCount="1"
printOrder="Vertical"
orientation="Portrait"
pageWidth="612"
pageHeight="792"
columnWidth="552"
columnSpacing="0"
leftMargin="30"
rightMargin="30"
topMargin="20"
bottomMargin="20"
whenNoDataType="NoPages"
isTitleNewPage="false"
isSummaryNewPage="false">
<property name="ireport.scriptlethandling" value="0" />
<property name="ireport.encoding" value="UTF-8" />
<import value="java.util.*" />
<import value="net.sf.jasperreports.engine.*" />
<import value="net.sf.jasperreports.engine.data.*" />
....
<pageHeader>
<band height="50" isSplitAllowed="true" >
<staticText>
<reportElement
x="0"
y="6"
width="552"
height="23"
key="staticText-4"/>
<box topBorder="None" topBorderColor="#000000" leftBorder="None" leftBorderColor="#000000" rightBorder="None" rightBorderColor="#000000" bottomBorder="None" bottomBorderColor="#000000"/>
<textElement textAlignment="Center">
<font size="18"/>
</textElement>
<text><![CDATA[MI REPORTE S. A.]]></text>
...
Saludos,