我正在寻找一个轻量级的 java 报告引擎来嵌入到 applet 应用程序中。
我的第一个选择是 Jasper Reports,但是 jar 超过 2Mb,对于我的需要来说有点太重(而且太臃肿)了。我不知道是否有模块化的 jasper 发行版,功能分为几个 jar(如 html 渲染、pdf、excel、编译、运行时等)。
我需要使用 Swing 预览报告并打印出来。PDF 导出是一个优点。
我正在寻找一个轻量级的 java 报告引擎来嵌入到 applet 应用程序中。
我的第一个选择是 Jasper Reports,但是 jar 超过 2Mb,对于我的需要来说有点太重(而且太臃肿)了。我不知道是否有模块化的 jasper 发行版,功能分为几个 jar(如 html 渲染、pdf、excel、编译、运行时等)。
我需要使用 Swing 预览报告并打印出来。PDF 导出是一个优点。
Jasper Reports 确实包含一个具有基本功能的 jar,用于预览和打印报告。它被打包为 jasperreports-xxx-applet.jar,大约 350k。
我知道这有点晚了,但是根据您的要求,我工作的公司推出的报告解决方案似乎是完美的选择:i-net Clear Reports(以前是 i-net Crystal-Clear)。
查看并告诉我们您的想法。
请参阅NextReports Engine大约 300k。NextReports Designer 是免费使用的。
恕我直言,块模板引擎是最好的。jar 文件只有180 KB!并支持IF和迭代。多么酷啊 !
为什么 2Mb 对于服务器端库来说太大了?Docmosis 的 jar 大小低于 500k,但需要在服务器上安装 OpenOffice,因此它一方面更小,另一方面更大。除非您使用所有功能/类,否则 Java 不会将 2Mb Jasper 加载到内存中。
如果找不到更好的解决方案,应该可以为 Jasper Reports 创建一个精简的 JAR 文件。GenJar工具应该能够基于其静态依赖项构建 JAR 文件 。
很久以前,我曾经使用 Zelix 的“Classmaster”混淆工具,它可以让您选择删除未使用的类。我认为它甚至可能已经剥离了未使用的方法,尽管我的记忆有点模糊。(我在一个封闭源代码产品上使用了它……它已经从 IP“黑洞”中消失了。)
编辑:另一个选项是ProGuard,它像 Classmaster 一样进行混淆和剥离,除了它是开源的。(可悲的是,他们似乎错误地配置了他们的 SF 网站链接。但上面的链接有效。)
当然,如果 Jasper Reports 使用Class.forName()
您需要识别所有相关类,将它们添加为您使用的剥离工具的“根”依赖项。此外,您需要查看 Jasper Reports 许可证以确保您被允许“分发”剥离的 JAR 文件。