您的位置:首页 > 编程语言 > Java开发

java/word+fusionchart生成图表

2012-11-19 17:57 211 查看
一个朋友的项目里用到了fusionchart,同时需要提供多个报表的word下载功能。

毫无疑问,只是一个很棘手的问题。

fusionchart提供了服务端和客户端生成图片的功能,都是基于client端展示了flash以后做的。

朋友的项目是基于linux的,office本身的那套com机制是没办法通过jacob调用了。

纯java的操作word,POI和docx4j,可以生成word文档,table,插入图片。

一个可行的思路是点击下载报表时,先在一个新页面打开各个flash的图表,再依次调用fusoinchart的功能在服务器端生成图片,

最后js再调用servlet生成doc,同时把上一步生成的各个图片插入到文档内。

这个曲线救国的策略性能非常低下。

第二个想法是直接在word中插入flash,作为ole到word中的形式,同时跟其他内容混排。这个方式应该性能应该是ok的,由word打开后去实时渲染flash。

但是发现word如果使用OLE doc的方式,不能使用HWPF了,只能自己一点点的拼BIFF文件,这实在不好做,而且还不知道OLE进去了能不能展示。

放弃之。PS:发现WSPH处理ppt的功能里有对ActiveX的简单支持。。。我去。。

第三个想法是拿到生成chart的数据,直接用office的图表功能,可惜的是发现HWPF里没有这功能,HSSF处理excel的功能里才有。

最后一个方法比较简单可行,性能尚可,后台用jfreechart生成图片,然后生成word文档。

坏处是,图表风格跟fusion不一致。jfree太丑了。但是这个方法是目前能想到最合适的方法了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: