Java将图片插入到word指定位置

版权声明:本文为博主原创文章,如果喜欢欢迎收藏转载! https://blog.csdn.net/IT_zhang81/article/details/85627123

前言:

有时我们想在一篇word文档中的指定位置添加一张图片,并且这张图片来自于后台服务器。这个对文档的操作一定是需要第三方api的。市面上对文档处理的插件有POI以及openoffice等等,学习成本很大,关键是通过这些插件对文档的操作功能也是十分有限。

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

先看效果:

文档里面的大的流程图就是通过pageoffice插入到word文档里的 

 部署步骤(只需5步)

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;');">后台编程插入图片到数据区域</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("[image]1.jpg[/image]");
	poCtrl1.setWriter(worddoc);
	poCtrl1.webOpen("test.doc", OpenModeType.docNormalEdit, "张三");
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>演示:后台编程插入图片到数据区域(专业版、企业版)</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("[image]doc/1.jpg[/image]");</span><br />
    </div>
    <br />
    <form id="form1" style="height: 100%;">
    <div style="height: 700px; width: auto;">
        <!--**************   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, "张三");

将新建的文件放在word.jsp同级目录下。

然后再找一张图片放在word.jsp同级目录下,并且复制图片的名称(包括后缀名),将第三步中的代码data1.setValue("[image]1.jpg[/image]");改为data1.setValue("[image]复制的图片的名称[/image]");

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文件夹下WordResImage文件夹里面的代码.

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

如有侵权,请联系博主

猜你喜欢

转载自blog.csdn.net/IT_zhang81/article/details/85627123