首页 > 代码库 > java 处理word文档 (含图片,表格内容)
java 处理word文档 (含图片,表格内容)
由于本人长期从事Oa相关项目的开发,所以处理word文档,Pdf,Excel等是在所难免的。
1.需求 处理Excel 可以用jxl 或者poi
2需求 用户在系统上填写信息,保存后导出标准的word文档,用户在系统上填写的信息我们用富文本编辑工具kindEditor,这个插件可以将用户从word文档拷贝的表格标签保存,但是图片信息需要另行上传。 现在问题出来了,我们要将这些包含图片,表格,特殊符号的东东生成word文档。
如果是单纯的没有特殊格字符,图片等信息,如果要生成word文档的时候可以用java+Freemark 模版的做法,具体作法
用word编辑好模版,将模版另存为 office 2003 xml 格式,然后打上相应的标签,最后将模版后缀改为.ftl即freemarker模版后缀即可。
如果有内容中有图片,而且图片位置不固定,这样是需要用java + velocity 模版的做法,具体流程将编辑好的word模版另存为.mht即单网页文档。
最后调整后缀为.vm即可。但是这个处理过程图片是保存不了的, 这个需要配合java2word。利用java+velocity 生成word文档,在往文档里面插入内容的时候可以用正则表达式替换图片标签为特殊的字符串,等到文档声称完毕后,采用java2word工具里面的查找替换功能将图片插入咱们内容加入的特殊字符位置。
如果想要效果标准的word文档,可以用itext 我用的是itext 2.1.7 一共三个包,其中一个是亚洲包,这个是支持中文的,利用litext可以用代码画出标准的word文档,特别是对待分页以及表格格式要求严格的用户。
上面说的java + velocity是临时方案,其实最简单的解决富文本编辑的问题时用插件,我们为客户购买了千航 即NTKO的office 编辑插件,我们买的是跨平台版的,这个插件可以
让用户在线编辑word文档并将文档保存到数据库。但是用这个插件可能系统运行初期,需要花费很大精力去运维,因为用户电脑的环境不是咱们开发人员能够左右的,等到一个周期过去之后效果基本上会好起来。