前言:

有时我们的系统中有这样的需求:用户将文件上传到服务器,然后需要我们将其中一篇文档当做段落插入到另一篇文档中。

要完成这种需求,如果从头到尾由我们自己来实现的话,首先要会集成ActiveX控件,其次还要懂一些VBA编程,最重要的是还要让这些技术整合到Java中。对于我们开发web系统的开发人员来说,只是需要将word文件合并或者其他一些简单操作,就要学习如此多的技术,未免学习成本太大。

所以我们今天就要介绍一个中间件技术——pageoffice,此中间件技术已经将 在web系统操作office文档的大部分功能整合完毕,大家只需要关注自己web系统的业务逻辑即可,下面我们来实战将pageoffice集成一下。

先看效果:

其中这三段内容原本都是一个独立的word文件,这是合并后的效果

部署步骤(只需4步)

1.官网http://www.zhuozhengsoft.com/dowm/下载集成文件,引入jar包,配置web.xml

去刚才下载的集成文件中找到lib,将里面的内容放在项目web-inf的lib中引入jar包,然后将web.xml的pageoffice配置引入到自己项目的wb.xml中

2.在父页面aaa.jsp(需要打开文档的页面)放一个a标签或者button

写a标签之前先引入pageoffice需要的js文件

<script type="text/javascript" src="/jquery.min.js"></script>
<script type="text/javascript" src="/pageoffice.js" id="po_js_main"></script>

然后添加a标签

<a href="javascript:POBrowser.openWindowModeless('Word.jsp' , 'width=1200px;height=800px;');">后台编程插入Word文件到数据区域</a>

3.在父页面同级目录下创建一个名为Word.jsp的文件

<%@ page language="java"import="java.util.*,com.zhuozhengsoft.pageoffice.*,com.zhuozhengsoft.pageoffice.wordwriter.*"pageEncoding="utf-8"%>
<%//******************************卓正PageOffice组件的使用*******************************PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);poCtrl1.setServerPage(request.getContextPath()+"/poserver.zz"); //此行必须WordDocument worddoc = new WordDocument();//先在要插入word文件的位置手动插入书签,书签必须以“PO_”为前缀//给DataRegion赋值,值的形式为:"[word]word文件路径[/word]、[excel]excel文件路径[/excel]、[image]图片路径[/image]"DataRegion data1 = worddoc.openDataRegion("PO_p1");data1.setValue("[word]1.doc[/word]");poCtrl1.setWriter(worddoc);//隐藏菜单栏poCtrl1.setMenubar(false);//隐藏自定义工具栏poCtrl1.setCustomToolbar(false);poCtrl1.webOpen("test.doc", OpenModeType.docNormalEdit, "张三");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>后台编程插入Word文件到数据区域</title></head><body><div style="font-size: 12px; line-height: 20px; border-bottom: dotted 1px #ccc; border-top: dotted 1px #ccc;padding: 5px;">关键代码:<span style="background-color: Yellow;"> <br />DataRegion dataRegion= worddoc.openDataRegion("PO_开头的书签名称");<br />dataRegion.setValue("[word]1.doc[/word]");</span><br /></div><br /><form id="form1"><div style="width: auto; height: 700px;"><!--**************   PageOffice 客户端代码开始    ************************--><%=poCtrl1.getHtmlCode("PageOfficeCtrl1")%><!--**************   PageOffice 客户端代码结束    ************************--></div></form></body>
</html>

4.新建文件

新建一个名为test.doc的word文件(如果新建的是docx文件就将第三步的poCtrl1.webOpen("test.doc", OpenModeType.docNormalEdit, "张三");代码改为poCtrl1.webOpen("test.docx", OpenModeType.docNormalEdit, "张三");

然后再新建一个合并用的文档1.doc(如果新建的是docx文件,就将第三步中的代码data1.setValue("[word]1.doc[/word]");改为data1.setValue("[word]1.docx[/word]");)

将新建的两个word文件随便编辑点内容放在OpenWord.jsp文件同级目录下.

5.添加书签

打开项目中刚才放置进去的test.doc文件,在想要插入文档的位置添加一个书签,名称必须PO_开头,比如我们设置为PO_p1

如果我们添加的书签名是PO_p2  那就将第三步中的代码 DataRegion data1 = worddoc.openDataRegion("PO_p1");改为DataRegion data1 = worddoc.openDataRegion("PO_p2");

然后启动项目直接访问aaa.jsp点击链接.此时会提示安装插件,点击安装成功后提示注册,填写相关信息,填写注册码CA1XB-MF7Y-12ST-PSBP2就可以打开文档.

注意:如果需要更丰富的功能,大家可以去pageoffice官网下载示例代码直接将samples4文件夹扔到Tomcat的webapps下,启动Tomcat,浏览器访问http://localhost:8080/Samples4/index.html,查看示例中的下面一个链接,直接看samples4文件夹下WordResWord文件夹里面的代码.

刚开始接触pageoffice的话,也可以看视频快速上手.http://www.zhuozhengsoft.com/Technical/

如有侵权,请联系博主

Java实现合并word文档并打开合并后文档相关推荐

  1. java freemarker导出word 带图片,文件导出后图片无法使用office正常打开

    问题记录:java freemark导出word 带图片,文件导出后图片无法使用office正常打开,解决之! 现象:wps打开正常,office如下 修改点: 图片${image1}标签前后保证无空 ...

  2. java poi生成word 插入表格,图片,自动合并单元格,并且可以在已存在的word上追加

    poi版本选3.10以上的 要不然插入图片 word会打不开 <dependency><groupId>org.apache.poi</groupId><ar ...

  3. python合并word表格单元格_合并Word 表格中单元格

    //合并Word 表格中单元格 procedure mergeWordCell; var WordApp: TWordApplication; WordDoc: TWordDocument; DocI ...

  4. python合并word全部_python:怎样合并文档中有重复部分的行?

    說明一下這個代碼所有的考量. 首先是 順序,這裡的順序有兩個部分,一個是輸出行的順序,一個是項目合併之後的順序.我們觀察到: pr333 sd23a2 thisisa 1001 1005 pr333 ...

  5. 关于word文档误点不保存后文档的恢复

    记录当完成word工作后误点了不保存选项的恢复办法 错误如图 利用word中的管理文档工具就可以完美恢复.点击要恢复文档的文件选项卡 在版本中存在当我没保存就关闭的文档,单机打开即可恢复.

  6. linux java环境变量不生效_Linux下java环境变量配置问题,解决 重新打开bash后JDK环境变量无效问题...

    Linux下配置JDK实际上是很简单的,我按照网上的教程进行如下配置,在 /etc/profile 文件中最后添加: export JAVA_HOME=/home/son/jdk1.8.0_144 e ...

  7. java xml用word打开乱码_为什么word文档打开是乱码

    为什么word文档打开是乱码 篇一:word文档变成乱码的两种解决方法 word文档变成乱码的两种解决方法 一.文档格式法 这种方法是将损坏的Word文档转换为另一种格式,然后再将其转换回Word文档 ...

  8. word文档可以打开但显示乱码的完全解决攻略

    一.文档格式法解决word文档乱码故障 这种方法是将损坏的Word文档转换为另一种格式,然后再将其转换回Word文档格式.注:这是最简单和最彻底的文档恢复方法. 1.在Word中打开损坏的文档后,选择 ...

  9. (一)JAVA基于OPENXML的word文档插入、合并、替换操作系列之基础篇

    (一)JAVA基于OPENXML的word文档插入.合并.替换操作系列之基础篇 前言 什么是Open Xml? Open XML SDK 这系列笔记要做点什么? 涉及技术点 关于word.openxm ...

最新文章

  1. Java编写的五子棋小游戏
  2. UVa 10148 - Advertisement
  3. PHP提交表单到当前页动作检测
  4. 计算机网络信息安全的含义,计算机网络信息安全内涵及其重要性
  5. 2008-09-01 XEIM 1.0 beta 已发布
  6. 怎样将Excel中的数据导入到SQL Server 2000数据库中
  7. 三分钟轻松了解Spring框架基础知识
  8. 6.数据结构 --- 树和二叉树
  9. vue强制刷新组件_强制Vue重新渲染组件的方法
  10. 实验二 /*网络嗅探与身份验证*/
  11. error C279: ‘parament‘: multiple initialization
  12. 演进:如何用练习快速提升技术
  13. c语言例题18:完全平方数
  14. python列联表分析
  15. c语言程序设计的删除函数,详解C语言中的rename()函数和remove()函数的使用方法
  16. 英伟达显卡安装老驱动388.71
  17. 如何恢复小强中被修改的软件包
  18. 敏捷实践 | 浅谈测试金字塔
  19. tracert命令介绍
  20. python绘制剖面图_Python气象绘图教程—(十九)剖面图

热门文章

  1. 国产智多晶FPGA基于Verilog的设计开发流程
  2. 计组——彻底搞懂cache主存映射以及cache容量的计算
  3. 《SolidWorks 2014中文版机械设计从入门到精通》——1.4 操作环境设置
  4. php 生成 webp,使用PHP脚本批量转换webp文件为png文件
  5. iis服务器.webp文件无法访问的解决办法
  6. python取整数部分的几种方法
  7. 蓝桥2——Beaver's Calculator
  8. Wechaty创建属于自己的微信机器人(附源码)
  9. IDEA提交不显示Git文件呈现红色
  10. 【Win10】电脑麦克风录音:设备调测