使用PageOffice实现文档(word,excel,pdf)在线预览编辑

最近发现一款不错的插件的PageOffice,地址是:http://www.zhuozhengsoft.com/Technical/  他可以实现word,excel、pdf在线预览以及在线编辑。虽然商用的话需要收费,但是有免费的试用版,在实现自己毕业设计或是做样品的时候 是一个不错的选择。他同时支持java\c#\php.一旦有了正真的项目花钱再买也可以。同时自己也可以熟悉如何使用。接着下面实现在线预览。
首先自己需要安装PageOffice控件 目前最新版本是4.2 。下载地址是:http://www.zhuozhengsoft.com/dowm/ 其中包括实例代码。
1、安装完后需要给自己的项目添加pageoffice4.jar 和java 添加jar包没有区别。
2、启动的时候第一次使用试用版会弹出一个框,需要添加一些信息,有一个序列号在最后我写了。剩下 那个就是随便填写就可以。同时他会生成一个文件就是license.lic。他会在tomcat 项目部署的lib下。假如每次启动都需要添加的话。你就需要把tomcat 部署项目lib 里的license.lic 复制到你的本地项目中。
3、预览后台代码:
	public String openbar(HttpServletRequest request, HttpServletResponse response, @PathVariable int id,
			@PathVariable int flag) {
		// 设置PageOffice服务器组件
		PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
		request.setAttribute("poCtrl1", poCtrl1);
		poCtrl1.setServerPage(request.getContextPath() + "/poserver.zz"); // 此行必须
		poCtrl1.setTitlebar(false); // 隐藏标题栏(pageoffice的标题)
		poCtrl1.setMenubar(false); // 隐藏菜单栏(文件一个设置)
		poCtrl1.setOfficeToolbars(false);// 隐藏Office工具条(word 的编辑按钮)
		// poCtrl1.setCustomToolbar(false);// 隐藏自定义工具栏(保存 关闭 全屏)
		poCtrl1.addCustomToolButton("打印", "ShowPrintDlg()", 6);
		poCtrl1.addCustomToolButton("全屏切换", "SwitchFullScreen()", 4);
		poCtrl1.addCustomToolButton("关闭", "close", 21);
		List entity = fileMetaService.getList(getEntity(flag, id));
		String path = ZipService.getPath(entity.get(0));
		String realpath = path.replace("/", "\\\\");
		String suffix = path.substring(path.lastIndexOf(".") + 1);
		if ("doc".equals(suffix) || "docx".equals(suffix)) {
			poCtrl1.webOpen(realpath, OpenModeType.docReadOnly, "张三");
		} else if ("xls".equals(suffix) || "xlsx".equals(suffix)) {
			poCtrl1.webOpen(realpath, OpenModeType.xlsReadOnly, "张三");
		}
		// 打开文件
		return "OpenWord";
	}

4'、在线编辑:
/**
	 * 在线编辑
	 * 
	 * @param request
	 * @param response
	 * @param id
	 * @param flag
	 * @return
	 */
	@RequestMapping("openword/{flag}/{id}")
	public String openword(HttpServletRequest request, HttpServletResponse response, @PathVariable int id,
			@PathVariable int flag) {
		PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
		request.setAttribute("poCtrl", poCtrl);
		poCtrl.setTitlebar(false);
		// 设置服务页面
		poCtrl.setServerPage(request.getContextPath() + "/poserver.zz");
		// 添加保存按钮
		poCtrl.addCustomToolButton("保存并关闭", "Save", 1);
		poCtrl.addCustomToolButton("打印", "ShowPrintDlg()", 6);
		poCtrl.addCustomToolButton("全屏切换", "SwitchFullScreen()", 4);
		// 设置保存的action
		poCtrl.setSaveFilePage(request.getContextPath() + "/wep/savefile/" + flag);
		// 打开word
		List entity = fileMetaService.getList(getEntity(flag, id));
		String path = ZipService.getPath(entity.get(0));
		String realpath = path.replace("/", "\\\\");
		String suffix = path.substring(path.lastIndexOf(".") + 1);
		if ("doc".equals(suffix) || "docx".equals(suffix)) {
			poCtrl.webOpen(realpath, OpenModeType.docNormalEdit, "张三");
		} else if ("xls".equals(suffix) || "xlsx".equals(suffix)) {
			poCtrl.webOpen(realpath, OpenModeType.xlsNormalEdit, "张三");
		}
		return "Word";
	}

5、在线编辑需要保存,所以有在线保存:
/**
	 * 保存
	 * 
	 * @param request
	 * @param response
	 * @param flag
	 */
	@RequestMapping("savefile/{flag}")
	public void savefile(HttpServletRequest request, HttpServletResponse response, @PathVariable int flag) {
		FileSaver fs = new FileSaver(request, response);
		if (flag == 1) {// hse 保存路径
			fs.saveToFile("D:\\Demo\\conhse\\" + fs.getFileName());
		} else if (flag == 2) {
			fs.saveToFile("D:\\Demo\\doc\\" + fs.getFileName());
		} else if (flag == 3) {
			fs.saveToFile("D:\\Demo\\hsequa\\" + fs.getFileName());
		} else if (flag == 4) {
			fs.saveToFile("D:\\Demo\\eva\\" + fs.getFileName());
		} else if (flag == 5) {
			fs.saveToFile("D:\\Demo\\leg\\" + fs.getFileName());
		} else if (flag == 6) {
			fs.saveToFile("D:\\Demo\\plan\\" + fs.getFileName());	
		}
		fs.close();
	}
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
	
	
7、jsp配置

<%@ page language="java"
	import="java.util.*,com.zhuozhengsoft.pageoffice.*"
	pageEncoding="UTF-8"%>
<%
	PageOfficeCtrl poCtrl = (PageOfficeCtrl) request.getAttribute("poCtrl");
%>




最简单的打开保存Word文件





	
<%=poCtrl.getHtmlCode("PageOfficeCtrl1")%>

注意:有时候jsp 和他的js 不在同一个目录, 这时候在jsp页面 使用
就可以输出你本页面pageoffice.js具体位置。
这就是简单的使用更详细具体需要去官网API看看。还有一些可以参考使用的,还有一些图标对应使用。
PageOffice V4.0 标准版试用序列号:5LB6J-1JIL-XE8X-AYY44
PageOffice V4.0 专业版试用序列号:I1I92-4M46-R6B2-E15TX
PageOffice V4.0 企业版试用序列号:I7TGD-71VV-FYD8-4NMYP




你可能感兴趣的:(插件)