如何在运行时更改页面格式?(jasperreport)

时间:2012-05-27 07:04:02

标签: java jasper-reports

我在iReport4.5中创建了一个A4格式的报告页面,并在java应用程序中使用。

如何在java应用程序的运行时将A4转换为A5格式?

1 个答案:

答案 0 :(得分:6)

在我向您展示如何执行此操作之前,请注意,仅更改页面大小可能无法满足您的需求。它会根据您的需要使页面变大或变小,放置元素的位置不会改变。在您的情况下,报告甚至可能无法编译,具体取决于您所放置项目的位置。

你确实有几个选择:

  1. 首先,您可以为A5格式创建第二个报告,然后 在运行时根据您的需要获取相应的报告。 这可能是最简单的解决方案,但它确实意味着你最终 有近2份相同的报道。意味着未来的任何变化 你必须在两个地方做。
  2. 第二,如果它是一个典型的相当直接的报告 布局你可以使用像Dynamic Jasper这样的东西来生成你的 用java代码报告。
  3. 最后,您可以直接针对Jasper Report的API工作 在运行时生成您的报告。
  4. <小时/> 现在回答你的问题。首先将JRXml文件加载到JasperDesign对象中:

    //Note JRXMLLoader could also take a File object or 
    //InputStream instead of a String as the parameter.
    JasperDesign design = JRXmlLoader.load("report.jrxml");
    

    获得JasperDesign后,您可以将页面大小设置为您想要的大小。据我所知,A5纸是5.83“×8.27”。要将此转换为JasperReports理解的大小,每个乘以72,得到420 x 596(我舍入,因为我们必须设置整数)。

    design.setPageHeight(596);
    design.setPageWidth(420);
    

    从那里你可以像往常一样对你的出口冒险进行讽刺。