【问题标题】:how to Change Page Format in Runtime?(jasperreport)如何在运行时更改页面格式?(jasperreport)
【发布时间】:2016-03-05 03:56:37
【问题描述】:

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

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

【问题讨论】:

    标签: java jasper-reports


    【解决方案1】:

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

    不过,您确实有几个选择:

    1. 首先您可以为 A5 格式创建第二个报告,然后 在运行时根据您的需要获取适当的报告。 这可能是最简单的解决方案,但这确实意味着您最终会 几乎有 2 份相同的报告。意味着未来的任何变化 你必须在两个地方做。
    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);
    

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

    【讨论】:

    • 我试过这个。不会引发任何错误,并且输出 pdf 不会从 8.5x11in 更改。我还直接在 jrxml 中设置了高度和宽度。我不知道还能做什么。有什么建议吗?
    猜你喜欢
    • 2014-04-16
    • 1970-01-01
    • 2010-09-24
    • 2017-07-06
    • 1970-01-01
    • 2014-08-20
    • 2017-05-31
    • 2013-05-27
    • 2016-02-02
    相关资源
    最近更新 更多