java 集成 pageoffice 在線編輯 word 文檔,保存之後返回自定義的值,並把值傳到父頁面

1.    描述:最近項目有個在線編輯office 辦公文檔的功能, 採用的方案是用 pageoffice 在線編輯 office 文檔. 因爲高版本的谷歌和火狐不支持任何插件了.所以pageoffice 用pobrowser方法間接彈出一個ie瀏覽器來實現.彈出的頁面稱作子頁面. 原來的頁面稱作父頁面.

最近有個需求. 在線保存文檔之後,需要返回一個自定義值,並且把這個值傳到父頁面中. 回調父頁面中的js函數

2.    核心代碼

(1) 保存成功後設置自定義的返回值

(2)頁面獲取自定義的返回值

(3)關閉彈出窗口的js

(4)回調父頁面js函數的方法

3:具體的實現過程

父頁面 index.jsp

<script type="text/javascript" src="<%=request.getContextPath()%>/jquery.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/pageoffice.js" id="po_js_main"></script>
			
<script type="text/javascript">
	function getValue(value){
		alert(value);
		document.getElementById('returnValue').value= value;
	}
</script>

<body>
		<input id="returnValue" value=""/>
		<a href="javascript:POBrowser.openWindowModeless('Word.jsp','width=1200px;height=800px;');">打開文件</a>
	
	</body>

文檔頁面

<%@ page language="java"
	import="java.util.*,com.zhuozhengsoft.pageoffice.*,com.zhuozhengsoft.pageoffice.wordwriter.*"
	pageEncoding="UTF-8"%>
<%@page import="java.awt.Color"%>
<%
	
	PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
	//設置服務器頁面
	poCtrl.setServerPage(request.getContextPath() + "/poserver.zz");
	//添加自定義按鈕
	poCtrl.addCustomToolButton("保存", "Save", 1);
	//設置保存頁面
	poCtrl.setSaveFilePage("SaveFile.jsp");
	//打開Word文檔
	poCtrl.webOpen("test.doc", OpenModeType.docNormalEdit, "張佚名");
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
	<body>
	<script type="text/javascript">
       	function Save() {
       		//保存
           document.getElementById("PageOfficeCtrl1").WebSave();
           //返回值
           document.getElementById("PageOfficeCtrl1").Alert("保存成功,返回值爲:" + document.getElementById("PageOfficeCtrl1").CustomSaveResult);
          var value = document.getElementById("PageOfficeCtrl1").CustomSaveResult;
           //調用父頁面
           var sResult = window.external.CallParentFunc("getValue('"+value+"');");
           if(sResult=='poerror:parentlost'){
		       alert('父頁面關閉或跳轉刷新了,導致父頁面函數沒有調用成功!');
		   }
		   //關閉窗口
           window.external.close();
       	}

    </script>
		<div style="height: 850px; width: 1036px; overflow: hidden;">
			<%=poCtrl.getHtmlCode("PageOfficeCtrl1")%>
		</div>
	</body>
</html>

保存頁面

<%@ page language="java" import="java.util.*,com.zhuozhengsoft.pageoffice.*" pageEncoding="utf-8"%>
<%
FileSaver fs=new FileSaver(request,response);
fs.saveToFile("d:\\aa.doc");
fs.setCustomSaveResult("ok");
fs.close();
%>

 

4:具體效果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章