PageOffic 页面中打开office编辑文档


---pom.xml



com.zhuozhengsoft
pageoffice
4.5.0.6

--------------web.xml



poserver
com.zhuozhengsoft.pageoffice.poserver.Server


poserver
/poserver.zz


poserver
/sealsetup.exe


poserver
/posetup.exe


poserver
/pageoffice.js


poserver
/jquery.min.js


poserver
/pobstyle.css


adminseal
com.zhuozhengsoft.pageoffice.poserver.AdminSeal


adminseal
/adminseal.zz


adminseal
/loginseal.zz


adminseal
/sealimage.zz


mht
message/rfc822


adminseal-password
111111

---------service方法

/**
* 读写服务器文档资源
*/
@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();
}

--------页面走后台跳转,需要用pobrowser 防止浏览器不支持

---------------------打开的页面设置

<%@ page contentType="text/html;charset=UTF-8"%>
<%@ page import="com.zhuozhengsoft.pageoffice.*,java.awt.*"%>
<%@ taglib uri="http://java.pageoffice.cn" prefix="po"%>