【问题标题】:Looking for an alternative to JasperReports [closed]寻找 JasperReports 的替代品 [关闭]
【发布时间】:2012-01-04 23:52:55
【问题描述】:

前几天,我的老板问我,他想要来自 web 应用程序的 PDF 格式的发票。鉴于每个人都使用 JasperReports 和 iReport 进行设计,我尝试了它。我的网络应用基于 Java+Hibernate 和 Spring。一开始 Jasper 看起来不错,iReport 也不错。无论如何,我被两件事阻止了:

  • iReport 是我这辈子见过的最慢的东西。
  • 更严重的是,我有某些具有某些类层次结构的 bean,在 Jasper 中处理它非常复杂。我办公室的每个人都在使用 Jasper 和 SQL 查询,因此它是一个简单方便的工具,但我花了一整天的时间尝试将我的 bean 映射到报表和子报表,但工作很少。

我见过 DynamicJasper,但是,我似乎无法用它设计报告。你怎么看?有更容易使用的替代品吗?

【问题讨论】:

  • 您是否正在寻找可与 Java+Hibernate 和 Spring 结合使用的替代方案?
  • DynamicJasper API 是 JasperReports API 的“包装器”
  • 关于 iReport 性能,最近的 4.1.x 和 4.5 版本中存在某种错误。查看此论坛帖子了解更多信息:jasperforge.org/plugins/espforum/…。对我来说,删除/重置类路径将 iReport 的性能提高了一个数量级。

标签: reporting jasper-reports report


【解决方案1】:

作为 iReport 的替代方案,您可以尝试 JasperWave 设计器用于 JasperReports。 为了解决第二个问题,为什么不编写一些帮助 Java 代码将 bean 结构转换为报告结构呢?无论如何,将 java 对象映射到某种平面结构总是不容易的。创建一些 java 接口来隐藏底层 bean 结构的复杂性。不确定第二个问题是否是寻找替代报告解决方案的原因。

【讨论】:

    【解决方案2】:

    如果时间至关重要(通常情况下,当你的老板交给你一些东西时)我会建议查看 iText(主站点是 here)。

    学习起来非常非常简单(您可以在 20 分钟内启动、运行并生成简单的“Hello,PDF!”示例),并且可以将几乎任何内容导出为 PDF:表格、列表、图表、图像、超文本等

    我自己承认,JasperReports 实施其JRBeanCollectionDataSource 对您来说是一个更优雅、更灵活、更持久的解决方案。但是,如果您需要一个快速且简单的库来生成 PDF, 并且 迫在眉睫的最后期限即将到来,我会下载 iText JAR 并使用它。

    该网站加载了几乎所有您想要完成的实用代码示例。

    与 JasperReports 不同,iText 不是报告生成器。它只是一个 PDF 生成器(从我在您的问题中可以看出,听起来就像您所需要的一样)。因此,对于任何特定的 Bean,您只需选择要导出到 PDF 发票的属性,然后根据需要使用ChunkParagraph 等类将它们附加到文档中:

    // Your POJO/Bean/VO
    Employee oEmp = new Employee();
    
    Document oInvoicePdf = new Document();
    PdfWriter.getInstance(document, new FileOutputStream("/invoices/2011/Invoice201.pdf"));
    document.open();
    document.add(new Chunk("Employee's name is : " + oEmp.getName()));
    document.close();
    

    即使这不是您想要的,不惜一切代价我建议您避开 Apache PdfBox。在我看来,这是纯粹的邪恶,只会伤你的心。

    希望这会有所帮助,祝你好运!

    【讨论】:

    • 我第二个 PDFBox 很困难。它的内部数据结构似乎充满了内存泄漏,并且并非真正设计用于处理大型文档。我最终需要关闭并重新打开源 pdf,只是为了清除它保留的所有不必要的数据。我真的希望他们能解决这些问题。
    • 这方面有什么新的更新吗?
    猜你喜欢
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    • 2015-05-21
    • 1970-01-01
    相关资源
    最近更新 更多