pageOffice的集成与使用pageOffice的错误:ReferenceError: POBrowser is not defined

第一步,去官网下载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的路径,根本就是误导人的。。。

发布了7 篇原创文章 · 获赞 1 · 访问量 6156

猜你喜欢

转载自blog.csdn.net/sherazade/article/details/88745260