Java 如何使用动态Jasper动态设置JRXML属性

Java 如何使用动态Jasper动态设置JRXML属性,java,jasper-reports,dynamic-jasper,Java,Jasper Reports,Dynamic Jasper,我有一个现有的动态jasper报告需要修改,以便可以动态设置页面方向和大小。我已经能够使用dynamicReportBuilder.setPageSizeAndOrientation实现这一点。。。。麻烦的是,当我改变页面大小时,标题不再在页面中间……/P> 我对标题的定义如下: <title> <band height="20" splitType="Stretch"> <textField> <repo

我有一个现有的动态jasper报告需要修改,以便可以动态设置页面方向和大小。我已经能够使用dynamicReportBuilder.setPageSizeAndOrientation实现这一点。。。。麻烦的是,当我改变页面大小时,标题不再在页面中间……/P> 我对标题的定义如下:

<title>
    <band height="20" splitType="Stretch">
        <textField>
            <reportElement x="0" y="0" width="760" height="20"/>
            <textElement textAlignment="Center" verticalAlignment="Middle">
                <font fontName="ConjectSans" size="14" isBold="false"/>
            </textElement>
            <textFieldExpression><![CDATA[$P{title}]]>    
            </textFieldExpression>
        </textField>
    </band>
</title>

但是如何从动态Jasper的DynamicReportBuilder访问JasperReport对象呢?

您不能这样做。JasperReport对象是只读对象。它是编译JasperDesign对象的结果

能够以编程方式设置页面大小使其具有动态性!如果需要再次更改,请再次生成报告

JRElement element = jasperReport.getTitle().getElementByKey("graphWidthKey");
element.setWidth(100);