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

标签 java jasper-reports

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

如何在 java 应用程序运行时将 A4 格式更改为 A5 格式?

最佳答案

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

不过你确实有几个选择:

  1. 首先您可以创建第二份 A5 格式的报告,然后 在运行时根据您的需要获取适当的报告。 这可能是最简单的解决方案,但这确实意味着您最终 几乎有 2 份相同的报告。意味着 future 的任何变化 你必须在两个地方做。
  2. 其次,如果它是一个具有典型特征的相当直接的报告 布局你可以使用类似 Dynamic Jasper 的东西生成你的 用 Java 代码报告。
  3. 最后,您可以直接使用 Jasper Report 的 API 来 在运行时生成报告。


现在回答你的问题。首先将 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);

从那里您可以像往常一样继续您的导出冒险。

关于java - 如何在运行时更改页面格式?(jasperreport),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10772240/

相关文章:

java - BouncyCasSTLe ECDSA 签名需要几毫秒

java - Poloniex api 也将我们带到安全检查页面

java - 将多个名称保存在字符串数组中

java - Jasper Report : Document root element "jasperReport", 必须匹配 DOCTYPE root "null"

java - Jasper 报告 PDF 中的字符编码

java - 数组列表的比较

java - Eclipse 插件 > 如何以编程方式包含 jar 文件

java - 如何使用Java获取JasperReports参数(JRParameter对象)的值?

mysql - iReport不接受SQL SUM函数

java - iReport 生成的 PDF 与 Web App 不同