轻量级Java报表引擎

11

我正在寻找一个轻量级的Java报表引擎,以嵌入小程序应用中。

我的第一个选择是Jasper Reports,但是这个jar文件超过了2Mb,对我的需求有点过重(并且过于臃肿)。我不知道是否有模块化的Jasper分发版本,将功能拆分为几个jar文件(如html呈现、pdf、excel、编译、运行时等)。

我需要使用Swing预览报表并打印。PDF导出是一个加分项。

6个回答

6

Jasper Reports包含一个基本功能的jar文件,用于预览和打印报表。它被打包为jasperreports-x.x.x-applet.jar,大小约为350k。


4
我知道有点晚了,但根据您的要求,我认为我们公司提供的报告解决方案是完美的选择: i-net Clear Reports (曾经是i-net Crystal-Clear)。
  • 轻量级和简单的查看器(类似于PDF查看器)
  • 非常易于使用的API
  • 可以导出到多种不同的格式,包括PDF
  • 支持任何JDBC数据源,也支持手动设置数据
  • 可以运行Crystal Reports模板
  • 我们还提供免费的、完全功能的报告设计师

请查看并告诉我们您的想法。


2

1
为什么2Mb对于服务器端库来说太大了?Docmosis的jar大小不到500k,但需要在服务器上安装OpenOffice,因此在某种程度上更小但在另一方面更大。如果不使用所有功能/类,Java将无法将2Mb的Jasper加载到内存中。

1
我没有在服务器端使用它,而是在客户端使用。小程序从服务器加载.jasper流,并使用Swing查看器呈现给用户。 - tuler

1

我个人认为Chunk模板引擎是最好的。这个jar文件只有180 KB!并且支持IF和迭代。太酷了!


1
对于PDF文件,我使用Chunk生成XML,Apache FOP引擎可以即时转换为PDF输出。 - Tom McClure
模板引擎是否具有针对报告的块模板功能?自动分组标题和总/小计似乎是最重要的。我在某些旧项目中使用模板引擎以“手动模式”进行报告编写,这是一项艰苦的工作。 - Jacek Cz

1

如果您找不到更好的解决方案,可以创建一个精简版的Jasper Reports JAR文件。 GenJar 工具应该能够基于其静态依赖项构建JAR文件。

很久以前,我曾经使用过Zelix的“Classmaster”混淆工具,它提供了剥离未使用类的选项。我认为它甚至可能会剥离未使用的方法,尽管我的记忆有点模糊。(我在一个已经消失在知识产权“黑洞”中的闭源产品上使用它。)

编辑:另一个选择是ProGuard,它像Classmaster一样进行混淆和剥离,只不过它是开源的。(可悲的是,他们似乎已经错误配置了他们的SF网站链接。但上面的链接有效。)

当然,如果Jasper Reports使用Class.forName(),您需要确定所有相关类并将它们添加为剥离工具使用的“根”依赖项。此外,您需要查看Jasper Reports许可证,以确保您被允许“分发”剥离后的JAR文件。


Jasper可以动态加载类,你需要找出它的依赖关系。 - sventechie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接