第一步,去官网下载pageoffice插件,网址:http://www.zhuozhengsoft.com/dowm/
我下载的是PageOffice完整程序包(PageOffice 4.5 for JAVA ),打开以后有demo(Samples4文件夹),有jar包和web.xml的配置(集成文件),安装说明,开发文档。
其中,将Samples4放入Tomcat的webapps文件夹中,然后启动tomcat,打开http://localhost:8080/Samples4/index.html,就可以看到demo的效果了,也可以参考demo来写代码。
我是在看demo的时候,点击其中的链接时,页面提示我安装pageoffice插件,我就直接在页面安装了。需要填写公司名称、名字、电话、还有注册码,写完点击注册就可以看效果了。
第二步,在项目里集成pageoffice
其实安装说明里面写的很清楚了,1.在web.xml中加入这些配置:
<!-- PageOffice Begin -->
<servlet>
<servlet-name>poserver</servlet-name>
<servlet-class>com.zhuozhengsoft.pageoffice.poserver.Server</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>poserver</servlet-name>
<url-pattern>/poserver.zz</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>poserver</servlet-name>
<url-pattern>/sealsetup.exe</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>poserver</servlet-name>
<url-pattern>/posetup.exe</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>poserver</servlet-name>
<url-pattern>/pageoffice.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>poserver</servlet-name>
<url-pattern>/jquery.min.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>poserver</servlet-name>
<url-pattern>/pobstyle.css</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>adminseal</servlet-name>
<servlet-class>com.zhuozhengsoft.pageoffice.poserver.AdminSeal</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>adminseal</servlet-name>
<url-pattern>/adminseal.zz</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>adminseal</servlet-name>
<url-pattern>/loginseal.zz</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>adminseal</servlet-name>
<url-pattern>/sealimage.zz</url-pattern>
</servlet-mapping>
<mime-mapping>
<extension>mht</extension>
<mime-type>message/rfc822</mime-type>
</mime-mapping>
<context-param>
<param-name>adminseal-password</param-name>
<param-value>111111</param-value>
</context-param>
<!-- PageOffice End -->
2.加入集成文件\lib中的jar包
3.在需要在线编辑的 JSP 页面头部添加:
<%@ page language="java" import="com.zhuozhengsoft.pageoffice.*" %>
<%@ taglib uri="http://java.pageoffice.cn" prefix="po" %>
4.现在由于谷歌、火狐都禁止插件了,所以官方推荐用POBrowser的方式打开,那么就需要在jsp中加上:
<script type="text/javascript" src=" jquery.min.js"></script>
<script type="text/javascript" src=" pageoffice.js" id="po_js_main"></script>
5.打开的链接用POBrowser的方式:
<a href="javascript:POBrowser.openWindowModeless('commonTemplateController.do?lookTemplate', 'fullscreen=yes;')">查看</a>
6.后台代码:
/**
* 查看Word
* @param req
* @param groupId
* @return
*/
@RequestMapping(params = "lookTemplate")
public String lookTemplate(HttpServletRequest req) {
PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(req);
poCtrl1.setServerPage(req.getContextPath() + "/poserver.zz"); //此行必须
//隐藏Office工具条
poCtrl1.setOfficeToolbars(false);
//隐藏自定义工具栏
poCtrl1.setCustomToolbar(false);
//设置页面的显示标题
poCtrl1.setCaption("查看");
//具体你的文件路径,我项目中的路径我都隐藏了,你们可以将文件路径传过来
String filePath =getPath();
if (filePath != null) {
poCtrl1.webOpen("file://" + path, OpenModeType.docReadOnly, "模板");
//打开文件
poCtrl1.setTagId("PageOfficeCtrl1");
}
return "openword";
}
7.打开的openword.jsp
<%@ page language="java"
import="java.util.*,com.zhuozhengsoft.pageoffice.*,com.zhuozhengsoft.pageoffice.wordwriter.*"
pageEncoding="utf-8"%>
<%@ page import="com.zhuozhengsoft.pageoffice.*,java.awt.*"%>
<%@ taglib uri="http://java.pageoffice.cn" prefix="po"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<div style=" width:auto; height:700px;">
<po:PageOfficeCtrl id="PageOfficeCtrl1" />
</div>
</body>
</html>
然后启动tomcat开始测试吧。。。。
pageOffice的错误:ReferenceError: POBrowser is not defined
这个问题困扰了我好几天,后来我跑去找pageoffice的客服,客户回答我说:
“我们为了更新方便 将pageoffice.js文件和jquery.min.js文件封装在了pageoffice.jar中 然后提供了一个servlet返回此js文件 此servlet的映射地址为/pageoffice.js
文件就相当于在项目根目录下 也就是直接将引用路径跳转到根目录就可以取到啦
比如当前页面在根目录下一级目录里 引用时src="../pageoffice.js"
如果当前页面在二级目录里 src="../../pageoffice.js"
以此类推即可”
所以网上那些说因为web.xml中写了
<servlet-mapping>
<servlet-name>poserver</servlet-name>
<url-pattern>/pageoffice.js</url-pattern>
</servlet-mapping>
因此不需要怎么写pageoffice.js的路径,根本就是误导人的。。。