---pom.xmljavascript
<!-- PageOffice插件 -->
<dependency>
<groupId>com.zhuozhengsoft</groupId>
<artifactId>pageoffice</artifactId>
<version>4.5.0.6</version>css
--------------web.xmlhtml
<!-- 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 -->java
---------service方法jquery
/**
* 讀寫服務器文檔資源
*/
@Override
public void readAndWirte(HttpServletRequest request,String fileSavePath) {
//前臺傳來的文件路徑
String filePath = request.getParameter("filePath");
filePath=filePath.replace("/", "\\");
String fileName = filePath.substring(filePath.lastIndexOf("\\")+1);
// 設置PageOffice服務器組件
PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
poCtrl1.setServerPage(request.getContextPath() + "/poserver.zz"); // 此行必須
poCtrl1.setTitlebar(false); // 隱藏標題欄(pageoffice的標題)
poCtrl1.setFileTitle(fileName);
poCtrl1.setMenubar(true); // 隱藏菜單欄(文件一個設置)
poCtrl1.setOfficeToolbars(true);// 隱藏Office工具條(word 的編輯按鈕)
poCtrl1.setCustomToolbar(true);// 隱藏自定義工具欄(保存 關閉 全屏)
poCtrl1.addCustomToolButton("保存並關閉", "Save", 1);
poCtrl1.addCustomToolButton("打印", "ShowPrintDlg()", 6);
poCtrl1.addCustomToolButton("全屏切換", "SwitchFullScreen()", 4);
// 設置保存路徑
poCtrl1.setSaveFilePage(request.getSession().getServletContext()
.getContextPath()
+ fileSavePath+"?fileId="+request.getParameter("fileId"));
//根據文件類型判斷
String wordType=filePath.substring(filePath.lastIndexOf(".")+1);
//打開的文檔類型
if("doc".equals(wordType)||"docx".equals(wordType)){
// word
poCtrl1.webOpen(filePath, OpenModeType.docNormalEdit, "Word.Document");
}else if("ppt".equals(wordType)||"pptx".equals(wordType)){
// ppt
poCtrl1.webOpen(filePath, OpenModeType.pptNormalEdit, "Word.Document");
}else if("xls".equals(wordType)||"xlsx".equals(wordType)){
// excel
poCtrl1.webOpen(filePath, OpenModeType.xlsNormalEdit, "Word.Document");
}
// 文件打開形式 office/wps
poCtrl1.setOfficeVendor(OfficeVendorType.MSOffice);
// 頁面展現的控件ID
poCtrl1.setTagId("PageOfficeCtrl1");
request.setAttribute("poCtrl1", poCtrl1);
request.setAttribute("filePath", filePath);
}
/**
* 只讀服務器文檔資源
*/
@Override
public void readOnly(HttpServletRequest request) {
// //前臺傳來的文件路徑
String filePath = request.getParameter("filePath");
filePath=filePath.replace("/", "\\");
String fileName = filePath.substring(filePath.lastIndexOf("\\")+1);
// 設置PageOffice服務器組件
// 設置PageOffice服務器組件
PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
poCtrl1.setServerPage(request.getContextPath() + "/poserver.zz"); // 此行必須
poCtrl1.setTitlebar(false); // 隱藏標題欄(pageoffice的標題)
poCtrl1.setMenubar(true); // 隱藏菜單欄(文件一個設置)
poCtrl1.setOfficeToolbars(false);// 隱藏Office工具條(word 的編輯按鈕)
poCtrl1.setCustomToolbar(true);// 隱藏自定義工具欄(保存 關閉 全屏)
poCtrl1.addCustomToolButton("關閉", "CloseWindow()", 1);
poCtrl1.addCustomToolButton("打印", "ShowPrintDlg()", 6);
poCtrl1.addCustomToolButton("全屏切換", "SwitchFullScreen()", 4);
try {
request.setCharacterEncoding("utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
//根據文件類型判斷
String wordType=fileName.substring(fileName.lastIndexOf(".")+1);
//打開的文檔類型
if("doc".equals(wordType)||"docx".equals(wordType)){
// word
poCtrl1.webOpen(filePath, OpenModeType.docNormalEdit, "Word.Document");
}else if("ppt".equals(wordType)||"pptx".equals(wordType)){
// ppt
poCtrl1.webOpen(filePath, OpenModeType.pptNormalEdit, "Word.Document");
}else if("xls".equals(wordType)||"xlsx".equals(wordType)){
// excel
poCtrl1.webOpen(filePath, OpenModeType.xlsNormalEdit, "Word.Document");
}
// 文件打開形式 office/wps
poCtrl1.setOfficeVendor(OfficeVendorType.MSOffice);
// 頁面展現的控件ID
poCtrl1.setTagId("PageOfficeCtrl1");
request.setAttribute("poCtrl1", poCtrl1);
request.setAttribute("pageTitle", fileName);
}
/**
* PageOffice服務器文檔資源保存
*/
@Override
public void fileSave(HttpServletRequest request,
HttpServletResponse response) throws Exception {
request.setCharacterEncoding("utf-8");
FileSaver fs = new FileSaver(request, response);
// 文件路徑
String filePath = attachmentService.findOne(request.getParameter("fileId")).getUrl();
filePath=filePath.replace("/", "\\");
fs.saveToFile(filePath);
fs.close();
}web
--------頁面走後臺跳轉,須要用pobrowser 防止瀏覽器不支持瀏覽器
<a id="wenjian" hidden="hidden" href="javascript:POBrowser.openWindowModeless('readOnly?filePath=D:/UploadFile/jxbgwh/111.doc','width=800px;height=700px;')"></a>服務器
---------------------打開的頁面設置app
<%@ page contentType="text/html;charset=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>
<head>
<script type="text/javascript" src="${request.getServletContext().getRealPath('/')}jquery.min.js"></script>
<script type="text/javascript" src="${request.getServletContext().getRealPath('/')}pageoffice.js" id="po_js_main"></script>
</head>
<body>
<po:PageOfficeCtrl id="PageOfficeCtrl1" />
</body>
<script type="text/javascript">
function Save() {
document.getElementById("PageOfficeCtrl1").WebSave();
window.external.close();//關閉POBrowser窗口
}
function ShowPrintDlg() {
document.getElementById("PageOfficeCtrl1").ShowDialog(4); //打印對話框
}
function SwitchFullScreen() {//全屏
document.getElementById("PageOfficeCtrl1").FullScreen = !document
.getElementById("PageOfficeCtrl1").FullScreen;
}
function CloseWindow(){
document.getElementById("PageOfficeCtrl1").close();
window.external.close();//關閉POBrowser窗口
}
</script>
</html>less