一、在开发OA办公或与文档相关的Web系统中,难免会遇到这样的需求,需要在word文件中指定一个位置,然后在指定的位置赋值或者插入文件,这样就需要在线动态创建书签的功能。
今天主要介绍用 pageoffice 组件实现在线动态创建书签。
两种方法
1:后台java代码创建书签(后台创建书签又一定的局限性:只能在文档的首、尾或者原有书签的前后)。
2:用js方法添加书签,js 方法添加书签比较方便,可以在光标所在的位置添加。
注意:pageoffice 组件里面的数据区域也就是书签,但是必须以 PO_ 开头,并且是唯一的。一个文档中不能出现多个数据区域(书签)。下面的介绍中都会用数据区域。
二、核心代码
三、具体的实现过程
具体实现过程
1.官网http://www.zhuozhengsoft.com/dowm/下载集成文件,引入jar包,配置web.xml
2.在父页面index.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('DataRegionCreate.jsp' , 'width=1200px;height=800px;');">动态创建数据区域</a>
3.在父页面同级目录下创建一个名为DataRegionCreate.jsp的文件
<%@ page language="java"
import="java.util.*,com.zhuozhengsoft.pageoffice.*,com.zhuozhengsoft.pageoffice.wordwriter.*"
pageEncoding="utf-8"%>
<%
PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
poCtrl1.setServerPage(request.getContextPath()+"/poserver.zz"); //此行必须
//添加自定义按钮
poCtrl1.addCustomToolButton("插入书签","addBookMark",5);
WordDocument doc=new WordDocument();
//创建数据区域,createDataRegion 方法中的三个参数分别代表“新建的数据区域名称”,“数据区域将要插入的位置”,
//“与新建的数据区域相关联的数据区域名称”,若当前Word文档中尚无数据区域(书签)或者想在文档的最开头创建时,那么第三个参数为“[home]”
//若想在文档的结尾处创建数据区域则第三个参数为“[end]”
DataRegion dataRegion1 = doc.createDataRegion("reg1",DataRegionInsertType.After,"[home]");
//给数据区域赋值
dataRegion1.setValue("第一个数据区域\r\n");
DataRegion dataRegion2 = doc.createDataRegion("reg2",DataRegionInsertType.After,"reg1");
dataRegion2.setValue("第二个数据区域\r\n");
DataRegion dataRegion3 = doc.createDataRegion("reg3",DataRegionInsertType.After,"[end]");
dataRegion3.setValue("第三个数据区域\r\n");
poCtrl1.setWriter(doc);
//打开Word文件
poCtrl1.webOpen("doc/test.doc", OpenModeType.docNormalEdit,"张三");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>新建数据区域</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<script type="text/javascript">
function addBookMark() {
document.getElementById("PageOfficeCtrl1").DataRegionList.Add( "PO_test", "测试" );
}
</script>
<div style="width: auto; height: 700px;">
<%=poCtrl1.getHtmlCode("PageOfficeCtrl1")%>
</div>
</body>
</html>
启动项目直接访问.此时会提示安装插件,点击安装成功后提示注册,填写相关信息,填写注册码 I7TGD-71VV-FYD8-4NMYP 就可以打开文档.
四、实现的效果
具体的代码也可以参考Samples 示例中的
刚开始接触pageoffice的话,也可以看视频快速上手http://www.zhuozhengsoft.com/Technical/