首先需要下载pageoffice的jar包,以及客户端的安装程序,如下图所示:

并且将这四个放在对应的lib目录下面,在web.xml中也要进行相应的添加,代码如下(一下所示的代码均来自于pageoffice官方代码,只是补充了一些自己的见解):

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>*.action</url-pattern></filter-mapping><filter-mapping><filter-name>struts2</filter-name><url-pattern>*.jsp</url-pattern></filter-mapping><!-- 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.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>123456</param-value></context-param><!--<context-param><param-name>posealdb-driver</param-name><param-value>com.mysql.jdbc.Driver</param-value></context-param><context-param><param-name>posealdb-url</param-name><param-value>jdbc:mysql://localhost:3306/sample</param-value></context-param><context-param><param-name>posealdb-username</param-name><param-value>root</param-value></context-param><context-param><param-name>posealdb-password</param-name><param-value>admin</param-value></context-param>--><!-- PageOffice End -->
</web-app>

在action的类中必须实现ServletRequestAware, ServletResponseAware两个接口,实现setServletRequest和setServletResponse方法,并且声明一个HttpServletRequest和HttpServletResponse和message(可写,返回客户端的消息),并且将声明的值注入到对应的set方法中

利用pageoffice打开对应的文档的操作是:

public String openword() throws Exception {PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(ServletActionContext.getRequest());//获取pageoffice对象poCtrl1.setServerPage("poserver.do"); //此行必须// Create custom toolbarpoCtrl1.addCustomToolButton("保存", "SaveDocuments()", 1);//SaveDocuments与jsp页面中的js函数名字一致,数字代表的是对应的图标poCtrl1.addCustomToolButton("-", "", 0);poCtrl1.addCustomToolButton("打印", "ShowPrintDlg()", 6);poCtrl1.addCustomToolButton("-", "", 0);poCtrl1.addCustomToolButton("全屏切换", "SetFullScreen()", 4);poCtrl1.addCustomToolButton("-", "", 0);poCtrl1.addCustomToolButton("加盖印章", "AddSeal()", 5);poCtrl1.addCustomToolButton("手写签批", "AddHandSign()", 5);poCtrl1.addCustomToolButton("验证印章", "VerifySeal()", 5);poCtrl1.setSaveFilePage("saveword.action");//保存需要执行的的actionpoCtrl1.webOpen("doc/test.doc", OpenModeType.docNormalEdit, "张三");//需要打开的打开的文档poCtrl1.setTagId("PageOfficeCtrl1"); //此行必须和前端中的<po:PageOfficeCtrl id="PageOfficeCtrl1" />id保持一致return "openword_"+SUCCESS;}

利用pageoffice保存文档的操作是:

public String saveword() throws Exception {FileSaver fs = new FileSaver(request, response);request.setAttribute("FileSaver", fs);//FileSaver位苦丁的字符串fs.saveToFile(request.getSession().getServletContext().getRealPath("doc/") + "/" + fs.getFileName());fs.showPage(300, 300);message = "结果保存成功!";return "saveword_"+SUCCESS;}

客户端的代码:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib uri="http://java.pageoffice.cn" prefix="po"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>My JSP 'editword.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><!--**************   卓正 PageOffice 客户端代码开始    ************************--><script language="javascript" type="text/javascript">function SaveDocuments() {document.getElementById("PageOfficeCtrl1").WebSave();//alert(document.getElementById("PageOfficeCtrl1").CustomSaveResult);}function ShowPrintDlg() {document.getElementById("PageOfficeCtrl1").ShowDialog(4);}function SetFullScreen() {document.getElementById("PageOfficeCtrl1").FullScreen = !document.getElementById("PageOfficeCtrl1").FullScreen;}function AddSeal() {document.getElementById("PageOfficeCtrl1").ZoomSeal.AddSeal();}function AddHandSign() {document.getElementById("PageOfficeCtrl1").ZoomSeal.AddHandSign();}function VerifySeal() {try{document.getElementById("PageOfficeCtrl1").ZoomSeal.VerifySeal();}catch(e){}}</script><!--**************   卓正 PageOffice 客户端代码结束    ************************--><!--  <div style="width:auto;height:200px;background-color: gray"></div> --><div style="width:auto; height:600px;"><po:PageOfficeCtrl id="PageOfficeCtrl1" /></div></body>
</html>

pageoffice 对文档的打开编辑的基本的操作相关推荐

  1. pageOffice插件 springboot实现服务器上Word文档在线打开编辑保存

    pageOffice插件 springboot实现服务器上Word文档在线打开编辑保存 需求: 在oa系统上,想实现在线,服务器上doc,docx文档,在web打开,编辑.编辑后,可以再同步保存到服务 ...

  2. java 流转文件_java 实现 word 文档的在线编辑以及流转

    用 pageoffice 实现文档的在线编辑以及文档流转 1: 流程 用修改无痕迹模式起草文件,各个领导批注自己意见的时候使用强制留痕模式打开,文员清稿的时候用核稿模式打开,还有最后只读模式打开发布的 ...

  3. 如何在计算机里显示wps云文档,wps云文档怎么打开

    wps云文档怎么打开[编辑] 概述 WPS云文档提供了专业的办公文件云存储服务.将办公文件放入云文档中,可以随时随地在手机,电脑上查看和编辑.WPS云文档可以使用手机WPS Office.办公客户端. ...

  4. office文档管理服务器编辑,_卓正软件 - PageOffice官方网站 - 在线编辑Word、Excel的Office文档控件...

    Office 组件 在线显示.编辑.保存Word文档 √ √ √ 在线显示.编辑.保存Excel文档 √ √ √ 在线显示.编辑.保存PowerPoint文档 √ √ √ 在线播放PowerPoint ...

  5. pdf 加深 扫描件_为什么PDF文档不能像Word文档一样随便编辑?如何免费将PDF转换为Word?...

    PDF文档是一种非常难编辑的文档,有时候我们需要编辑或者复制PDF文档里面的内容,把PDF文档转换为Word就是我们最佳的选择.为什么PDF文档这么难编辑?我们怎么免费把PDF文档转换为Word文档? ...

  6. 计算机word文档无法工作,win10所有word文档都打不开如何解决_win10电脑所有word文档无法打开解决教程...

    word是我们经常会用到的文档编辑工具,用户们都会在电脑中安装使用,不过使用的时候难免遇到一些问题,比如有win10 ghost 纯净版系统用户要打开word文档的时候发现电脑中所有word文档都打不 ...

  7. 石墨文档链接不到服务器,石墨文档怎么打开链接

    石墨文档快捷键怎么用 石墨文档快捷键怎么用?具体的使用方法是什么呢?对此,很多小伙伴还不是很了解.那么接下来,就跟随玩游戏网的小编一起继续往下看,感兴趣的小伙伴一定不要错过哦!石墨文档快捷键怎么用:撤 ...

  8. word文档可以打开但显示乱码的完全解决攻略

    一.文档格式法解决word文档乱码故障 这种方法是将损坏的Word文档转换为另一种格式,然后再将其转换回Word文档格式.注:这是最简单和最彻底的文档恢复方法. 1.在Word中打开损坏的文档后,选择 ...

  9. 3种方法保护Word文档不可随意编辑

    做好的Word文档不想被别人随意编辑,或者担心自己不小心改动了,我们可以给Word设置保护模式,让其不能或者不容易编辑.下面来说说具体有哪些保护方法. 方法一: 把Word文档转换为PDF格式,就不容 ...

最新文章

  1. IQKeyboardManager使用方法
  2. 快讯 | 清华成立AI研究院,与谷歌深度合作,张钹、姚期智、Jeff Dean坐镇
  3. 搜索引擎优化(独立阐述)
  4. mysql文件怎么导入_mysql怎么导入sql文件
  5. struts2 spring jfreechart 整合
  6. 用两个栈(C++)实现插入排序
  7. DL之DNN优化技术:DNN中参数初始化【Lecun参数初始化、He参数初始化和Xavier参数初始化】的简介、使用方法详细攻略
  8. 理财经理们都想用AI,但客户们不想用 | 福布斯报告
  9. Java中的ReentrantLock和synchronized两种锁机制的对比
  10. 毕业设计 大数据房价数据分析及可视化 - python 房价分析
  11. 2020年“深圳杯”数学建模挑战赛C题-无线可充电传感器网络充电路线规划
  12. Docker - Dockerfile之FROM、ARG、LABEL、MAINTAINER、RUN、CMD指令详解
  13. Gif录制神器GifCam
  14. abb机器人码垛编程详解_ABB机器人码垛编程方法与技巧
  15. Ng深度学习笔记-卷积神经网络-目标检测
  16. 最好用的xshell替代软件----FinalShell工具
  17. 鸿蒙系统研究之五:替换 AOSP 预编译库,关闭 SELinux
  18. 选对MP3播放器 享受无损纯音质
  19. Linux 目录管理类命令
  20. 探讨如何在Linux上通过windows的域控制上网( by quqi99 )

热门文章

  1. Opencv图像缩放和平移
  2. 水印第四版 ~ 非人水印(添加人脸识别)
  3. 2020 年一线城市程序员工资大调查
  4. 中国婴儿耐用品行业市场供需与战略研究报告
  5. 暑假集训-8.5总结
  6. 几种插值算法对比研究
  7. 解释SAR/INSAR/DINSAR的概念
  8. Qt第十八章:Qt Designer窗口切换
  9. 官宣|AI TIME & 上海交通大学俱乐部招新啦!
  10. 面向对象编程题——人开枪射击子弹