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