[转载]java合并word文件
程序员文章站
2024-03-25 15:05:22
...
需求背景
在互联网教育行业,做内容相关的项目经常碰到的一个问题就是如何动态生成一张word试卷。事先把题库中的每一道试题都已经保存成一个独立的word文件了,但是在选择了部分试题生成一张word试卷的时候,如果不能通过java程序来合并已经选择了的word试题文件,那么就只能通过手动录入和拷贝的方式来合并word内容,效率低下,而且人工成本和录入出错率都较高。
问题难点
使用POI来实现word合并需要面对的困难主要有以下几个方面:
- word 结构问题 —— word不开源,且含有很多非文本内容,比如图表、图片,而已知的常规方法只能解析纯文本内容,所以如果不知道word内部层级结构,解析将难以进行。
- word 版本问题 —— 目前word有docx和doc两种文档格式,解析是否要全部兼容?当然,前提是已经成功解析一种类型。
- word 规范问题 —— 有些word可能是早期制作的,返工代价太大,所以格式内容多样化。而且就算制定word格式规范,新制作的word也无法保证格式一定正确。
使用Jacob来实现word文档合并要面对的问题:
- 服务器必须是Windows操作系统 —— 目前之所以web项目多用Java开发,就是因为服务器可以是Linux、Unix等非Windows的系统来降低项目的成本。
- 服务器上必须安装Office —— Jacob的意思就是: Java COM Bridge,java中调用office提供的com接口来实现对Office文件的操作。
- 并发问题 —— 如果多用户同时在线生成word文件就必须处理此并发问题,稍有不慎,就会在服务器端产生Office的死进程,死锁服务器的内存资源。
解决方案
问题研究一段时间后,进展缓慢,在反复百度的过程中发现PageOffice提供了很好的解决方案,并且在PageOffice的示例程序中就有相关的演示,只不过PageOffice的演示示例是把word文件以二进制流的形式保存在数据库中,只需要在自己的项目中改为用磁盘文件的方式保存word文件就可以了。PageOffice方案采用了调用客户端Office接口进行word文档合并,这样就同时解决了word格式问题、版本问题、规范问题和多用户的并发问题,对服务器端也没有任何要求,堪称完美。
PageOffice for Java的开发包下载地址:http://www.zhuozhengsoft.com/dowm/ ,拷贝解压出来的 Samples4 文 件 夹 到 Tomcat 的 Webapps 目 录 下 , 访 问 : http://localhost:8080/Samples4/index.html,查看综合演示: 三、2、在Word文档中动态生成一张试卷
推荐阅读
-
[转载]java合并word文件
-
[转载]Java给word中的table赋值 javawordtable
-
转 Java开发如何在线打开Word文件 博客分类: java操作word java操作word
-
Java开发在线打开编辑保存Word文件(支持多浏览器) 博客分类: java操作word java操作word
-
java操作excel文件的两种方案 博客分类: java操作word java操作excel
-
WORD文件转换PDF方法1:利用Word转换的效率及适应性研究(JAVA环境) 博客分类: 文档处理
-
WORD文件转换PDF方法1:利用Word转换的效率及适应性研究(JAVA环境) 博客分类: 文档处理
-
Java 合并Word文档 博客分类: Java Word JavaSpire.Doc for JavaWord合并免费Word控件
-
java实现pdf文件转word
-
java 实现word文件转pdf文件