jsp+java用pageoffice在线编辑office文档
来源:互联网 发布:六级词汇书推荐知乎 编辑:程序博客网 时间:2024/04/29 08:14
首先你要有三个东西:sealsetup.exe、pageoffice.jar和posetup.exe,如果没有,就去 http://www.zhuozhengsoft.com/download.html 下载,下载完之后拷贝sealsetup.exe、pageoffice.jar和posetup.exe到项目的WEB-INF\\lib目录下。
第二步 在项目的web.xml里面添加如下代码:
<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>/poserver.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>poserver</servlet-name>
<url-pattern>/pageoffice.cab</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>poserver</servlet-name>
<url-pattern>/popdf.cab</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>
<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.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>adminseal</servlet-name>
<url-pattern>/loginseal.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>adminseal</servlet-name>
<url-pattern>/sealimage.do</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>
接下来就可以直接在页面上使用了,此处以一个死路径为例
function editfile() {
var filesrc="/test.doc";
var url='<%=contextPath%>/editfile.jsp?fileId='+filesrc;
window.open(url,'newWin','modal=yes,width=560,height=420,resizable=no,scrollbars=no');
}
editfile.jsp页面的代码如下:
<%@ taglib uri="http://java.pageoffice.cn" prefix="po"%>
<%
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
//******************************卓正PageOffice组件的使用*******************************
PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
//poCtrl1.setServerPage(request.getContextPath() + "/poserver.zz"); //此行必须
poCtrl1.setServerPage("poserver.do"); //此行必须
poCtrl1.setSaveFilePage("SaveFile.jsp");//执行保存操作的文件或者请求路径
//1:保存 2:盖章 3:批注文本 4:全屏 5:打钩 6:打印 7:搜索 0:文本列表
poCtrl1.addCustomToolButton("保存", "Save", 1);
poCtrl1.addCustomToolButton("普通编辑", "docNormalEdit", 3);
poCtrl1.addCustomToolButton("痕迹编辑", "docRevisionOnly", 3);
poCtrl1.addCustomToolButton("显示痕迹", "ShowRevisions", 5);
poCtrl1.addCustomToolButton("隐藏痕迹", "HiddenRevisions", 5);
poCtrl1.addCustomToolButton("手写批注", "StartHandDraw", 3);
String path=request.getSession().getServletContext().getRealPath("/") ;
//String path=getClass().getResource("/").getFile().toString();
String fullpath = "";//完整路径
String filepath = request.getParameter("fileId");//文件存放路径
poCtrl1.setCaption("在线编辑 "+filepath);
//如果是文件存放路径,要加上服务器地址,组合成完整路径
if (filepath != null && !"".equals(filepath)
&& !"null".equals(filepath)
&& !"undefined".equals(filepath)) {
fullpath = path +"/"+filepath;
}
//获取文件类型
String fileType=filepath.substring(filepath.lastIndexOf("."));
if(fileType.trim().equals(".doc")||fileType.trim().equals(".docx")) {
poCtrl1.webOpen(fullpath, OpenModeType.docNormalEdit, "aa");//可编辑模式打开word文档
//poCtrl1.webOpen(fullpath, OpenModeType.docReadOnly, "aa");//只读模式打开word文档
} else if(fileType.trim().equals(".xls")||fileType.trim().equals(".xlsx")) {
poCtrl1.webOpen(fullpath, OpenModeType.xlsNormalEdit, "aa");//可编辑模式打开excel文档
//poCtrl1.webOpen(fullpath, OpenModeType.xlsReadOnly, "aa");//只读模式打开excel文档
} else if(fileType.trim().equals(".ppt")||fileType.trim().equals(".pptx")) {
poCtrl1.webOpen(fullpath, OpenModeType.pptNormalEdit, "aa");//可编辑模式打开ppt文档
//poCtrl1.webOpen(fullpath, OpenModeType.pptReadOnly, "aa");//只读模式打开ppt文档
}
poCtrl1.setTagId("PageOfficeCtrl1"); //此行必须要!
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<link href="images/csstg.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
//流程跳转
function Lz(id,flag) {
if(flag==0){
location.href=encodeURI("index.jsp?id="+id+"&flg=李四批阅");
}
else
location.href=encodeURI("index.jsp?id="+id+"&flg=文员清稿");
}
</script>
<style>
* {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
}
</style>
</head>
<body>
<form id="form2">
<div id="content">
<div id="textcontent" style="width:auto; height:100%;">
<!--************** 卓正 PageOffice组件 ************************-->
<script type="text/javascript">
function Save() {
//判断是否为附件
var fullpath = "<%=fullpath%>";
if(fullpath.indexOf('http:') == 0){
if(window.confirm("该文件不是附件不能保存到服务器!\n 是否另存为本地文件?")){
document.getElementById("PageOfficeCtrl1").ShowDialog( 3 );
}else{
}
return;
}
//提示是否保存服务器
if (window.confirm("是否要将修改后的内容保存到服务器?")) {
document.getElementById("PageOfficeCtrl1").WebSave();
} else {
}
}
//显示痕迹
function ShowRevisions() {
document.getElementById("PageOfficeCtrl1").ShowRevisions = true;
}
//隐藏痕迹
function HiddenRevisions() {
document.getElementById("PageOfficeCtrl1").ShowRevisions = false;
}
//领导圈阅签字
function StartHandDraw() {
document.getElementById("PageOfficeCtrl1").HandDraw.SetPenWidth(5);
document.getElementById("PageOfficeCtrl1").HandDraw.Start();
}
// 插入键盘批注
function StartRemark() {
var appObj = document.getElementById("PageOfficeCtrl1").WordInsertComment();
}
//分层显示手写批注
function ShowHandDrawDispBar() {
document.getElementById("PageOfficeCtrl1").HandDraw.ShowLayerBar(); ;
}
//全屏/还原
function IsFullScreen() {
alert("全屏/还原");
document.getElementById("PageOfficeCtrl1").FullScreen = !document.getElementById("PageOfficeCtrl1").FullScreen;
}
//显示标题
function ShowTitle() {
alert("该菜单的标题是:" + document.getElementById("PageOfficeCtrl1").caption);
}
//痕迹编辑模式
function docRevisionOnly(){
var fullpath = '<%=fullpath%>';
document.getElementById("PageOfficeCtrl1").Close();
document.getElementById("PageOfficeCtrl1").WebOpen( fullpath, "docRevisionOnly", "张三" );
}
//普通编辑模式
function docNormalEdit(){
var fullpath = '<%=fullpath%>';
alert(fullpath);
document.getElementById("PageOfficeCtrl1").Close();
document.getElementById("PageOfficeCtrl1").WebOpen("系统管理概要设计.doc", "docNormalEdit", "张三");
}
</script>
<po:PageOfficeCtrl id="PageOfficeCtrl1" />
</div>
</div>
</form>
</body>
</html>
以上就可以完成在线打开office文档或者在线编辑office文档,如果需要保存则在SaveFile.jsp页面添加如下代码:
<%@ page language="java" import="java.util.*,com.zhuozhengsoft.pageoffice.*" pageEncoding="UTF-8"%>
<%
String contextPath = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+contextPath+"/";
FileSaver fs = new FileSaver(request, response); //保存Word文档到相应的磁盘路径中
fs.saveToFile(request.getSession().getServletContext().getRealPath("/") + "/" + fs.getFileName());
//fs.showPage(300,300);//可在前台弹出相应大小的窗口,并在上面显示想要显示的信息内容
fs.close();
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
%>
</body>
</html>
测试一下,就可以在线打开office文档并且可以编辑和保存了
转载请注明出处 http://blog.csdn.netnthislife
- jsp+java用pageoffice在线编辑office文档
- jsp+java用pageoffice在线编辑office文档
- Office文档在线编辑
- 在线编辑office文档控件
- 使用PageOffice实现文档(word,excel,pdf)在线预览编辑
- 使用PageOffice实现文档(word,excel,pdf)在线预览编辑
- Office文档在线编辑的实现之一
- Office文档在线编辑的实现之一
- Office文档在线编辑的实现之一
- 在线Office文档编辑ActiveX插件DsoFramer
- JavaScript Office文档在线编辑备忘
- Office文档在线编辑的实现
- Office文档在线编辑的实现之一
- pageOffice实现word在线编辑保存功能
- dsoframer控件-jsp在线编辑offic文档
- Office文档在线编辑的实现之二
- Office文档在线编辑的实现之二
- Office Online Server 文档在线预览编辑【速成篇】
- HDOJ 5120 Intersection(求两圆相交面积)
- JPA实体标识的自动生成
- jQuery中$.ajax解析xml、json格式数据
- Java反射工具类
- 解析
- jsp+java用pageoffice在线编辑office文档
- iPhone 中使用NSLocalizedString实现国际化
- 【BZOJ2631】tree Link-Cut-Tree
- 【LeetCode】Min Stack 解题报告
- 白书 回文 镜像
- android sqlite db-journal文件产生原因及说明 .
- UVAOJ 10115 ——Automatic Editing 模拟
- AndroidManifest.xml文件详解(uses-configuration)
- hsql数据库实现