需求背景

在互联网教育行业,做内容相关的项目经常碰到的一个问题就是如何动态生成一张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文件相关推荐

  1. java添加文档注释_添加Java文档注释

    一.在Eclipse中add javadoc comment的快捷键为: 快捷键为:ALT + SHIFT +J 二.Window-->Preferences-->General--> ...

  2. 怎么给word文档注音_请教如何在WORD文档中给汉语拼音加上声调?

    展开全部 现在打拼音e69da5e887aa3231313335323631343130323136353331333433623130,装个字体就行,可以直接打出带音标的韵母.装好Pinyin no ...

  3. 关于用java编写生成word文档,动态添加数据到word文档的一些心得

    关于用java编写生成word文档,动态添加数据到word文档的一些心得,经过翻阅了无数的有用的和无用的资料以后,总算找到了一种靠谱的方法 1.概述 经过反反复复的查阅资料,总算找到了一个靠谱的生成w ...

  4. web系统中巧用word文档的html格式创建多样式的word文档,WEB系统中巧用WORD文档的HTML格式创建多样式的WORD文档...

    以计算机和现代网络技术为特征的现代信息技术极大地促进了社会经济的发展,基于各行各业的WEB系统的开发与应用也越来越多. >> WEB系统中巧用WORD文档的HTML格式创建多样式的WORD ...

  5. 将word文档按分页另存为多个word文件的VBA代码

    有时候需要将一个word文档每一页另存为一个word文档,如果手工操作,量大会累死人的.今天我们用VBA来实现批量自动处理.在文档的ThisDocument的代码页中输入以下代码,然后执行Sub Sa ...

  6. word文档docx解密在线网站,word文档docx不能复制打印怎么办?

    word文档docx解密工具,忘记word文档docx密码如何找回?解开word文档docx编辑,用「密码帝」 亲测有效!非常简单手机电脑都可以用,一键轻松在线解密!不用下载安装任何软件!

  7. matlab制作的表格引入word文档,在Excel表格中插入Word文档的三种方法

    在Excel文档中,插入或链接Word数据一般有利用复制粘贴插入Word文档内容.直接插入Word文档.将Excel表格的内容链接到Word文档3种方法. 一.利用复制粘贴插入Word文档内容 如果用 ...

  8. 怎么使用计算机求和,Word文档如何使用求和功能?Word文档使用求和教程

    Word是我们工作中经常使用的办公软件,有时候在Word文档中有很多数值.数据,需要我们进行求和.汇总,不过有些小伙伴并不知道Word中有求和功能,用着计算机算,那工作效率不能直视,那么该怎么使用Wo ...

  9. word文档docx解密去除限制,word文档docx复制打印限制怎么解除?

    word文档docx密码解除软件,word文档docx权限密码多少?[真的很好用]word文档docx文件解除权限,用「密码帝」 亲测有效!非常简单手机电脑都可以用,一键轻松在线解密!不用下载安装任何 ...

  10. java读取word文档内容_合并多个Word文档内容,还在复制粘贴就out了,同事五秒轻松搞定...

    在我们工作中,我们经常会编写多个Word文档内容,那么怎么将多个单个的Word文档合并到一个文档中,这就会显得有些难度. 如上图所示,我们需要将三个不同的案例,快速的汇总到我们的案例汇总表当中.许多朋 ...

最新文章

  1. 想要,但很难得到就随缘
  2. C语言-二维数组与指针
  3. HDU - 5820 Lights(主席树)
  4. django restframework 下载文件_【技术选型】Django还是Flask?这是个问题!
  5. 洛谷-P3396 哈希冲突 分块
  6. 【代码笔记】Web-HTML-颜色
  7. Okhttp实用封装
  8. 18b20温度检测及其lcd显示_单片机使用DS18B20测量温度的程序
  9. python 微信跳一跳辅助 复现
  10. 利用Java-JACOB操作WORD文档2
  11. HFSS阵列天线设计与仿真1
  12. #includeiostream里的定义
  13. 闲置手机制作电脑副屏-状态监控(含软件)
  14. 推荐几个免费论文查重网站
  15. 计算机软考网络管理员题,计算机软考网络管理员理论练习题及答案(5)
  16. Word中相邻的两页无法没有对齐的解决方法
  17. Qt编写自定义控件:简单的方式绘制渐变进度条
  18. 【jquery】删除节点 添加节点 找兄弟节点
  19. 基于Tcl脚本生成Vivado工程及编译
  20. 遭遇职场官斗,外派回来岗位被占!

热门文章

  1. 安装虚拟机时勾选增强型键盘驱动程序有什么用?(在软件安装或者升级时候没勾选怎么办)
  2. android开源系统brvah,BRVAH(让RecyclerView变得更高效)(1)
  3. 【Unity3D插件】XCharts插件分享《图表插件》
  4. 实验(一)时间片轮转调度算法(Java)
  5. word批量转PDF怎么转
  6. 用React实现基于Canvas的图片放大镜功能
  7. IDEA使用maven命令打包
  8. 淘宝天猫京东商品详情一键铺货到拼多多平台店铺接口代码对接教程
  9. Hadoop面试题整理(1)
  10. Hadoop经典面试题