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

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

[html] view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  6. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  7. <welcome-file-list>
  8. <welcome-file>index.jsp</welcome-file>
  9. </welcome-file-list>
  10. <filter>
  11. <filter-name>struts2</filter-name>
  12. <filter-class>
  13. org.apache.struts2.dispatcher.FilterDispatcher
  14. </filter-class>
  15. </filter>
  16. <filter-mapping>
  17. <filter-name>struts2</filter-name>
  18. <url-pattern>*.action</url-pattern>
  19. </filter-mapping>
  20. <filter-mapping>
  21. <filter-name>struts2</filter-name>
  22. <url-pattern>*.jsp</url-pattern>
  23. </filter-mapping>
  24. <!-- PageOffice Begin -->
  25. <servlet>
  26. <servlet-name>poserver</servlet-name>
  27. <servlet-class>com.zhuozhengsoft.pageoffice.poserver.Server</servlet-class>
  28. </servlet>
  29. <servlet-mapping>
  30. <servlet-name>poserver</servlet-name>
  31. <url-pattern>/poserver.do</url-pattern>
  32. </servlet-mapping>
  33. <servlet-mapping>
  34. <servlet-name>poserver</servlet-name>
  35. <url-pattern>/pageoffice.cab</url-pattern>
  36. </servlet-mapping>
  37. <servlet-mapping>
  38. <servlet-name>poserver</servlet-name>
  39. <url-pattern>/popdf.cab</url-pattern>
  40. </servlet-mapping>
  41. <servlet-mapping>
  42. <servlet-name>poserver</servlet-name>
  43. <url-pattern>/sealsetup.exe</url-pattern>
  44. </servlet-mapping>
  45. <servlet-mapping>
  46. <servlet-name>poserver</servlet-name>
  47. <url-pattern>/posetup.exe</url-pattern>
  48. </servlet-mapping>
  49. <servlet>
  50. <servlet-name>adminseal</servlet-name>
  51. <servlet-class>com.zhuozhengsoft.pageoffice.poserver.AdminSeal</servlet-class>
  52. </servlet>
  53. <servlet-mapping>
  54. <servlet-name>adminseal</servlet-name>
  55. <url-pattern>/adminseal.do</url-pattern>
  56. </servlet-mapping>
  57. <servlet-mapping>
  58. <servlet-name>adminseal</servlet-name>
  59. <url-pattern>/loginseal.do</url-pattern>
  60. </servlet-mapping>
  61. <servlet-mapping>
  62. <servlet-name>adminseal</servlet-name>
  63. <url-pattern>/sealimage.do</url-pattern>
  64. </servlet-mapping>
  65. <mime-mapping>
  66. <extension>mht</extension>
  67. <mime-type>message/rfc822</mime-type>
  68. </mime-mapping>
  69. <context-param>
  70. <param-name>adminseal-password</param-name>
  71. <param-value>123456</param-value>
  72. </context-param>
  73. <!--<context-param>
  74. <param-name>posealdb-driver</param-name>
  75. <param-value>com.mysql.jdbc.Driver</param-value>
  76. </context-param>
  77. <context-param>
  78. <param-name>posealdb-url</param-name>
  79. <param-value>jdbc:mysql://localhost:3306/sample</param-value>
  80. </context-param>
  81. <context-param>
  82. <param-name>posealdb-username</param-name>
  83. <param-value>root</param-value>
  84. </context-param>
  85. <context-param>
  86. <param-name>posealdb-password</param-name>
  87. <param-value>admin</param-value>
  88. </context-param>-->
  89. <!-- PageOffice End -->
  90. </web-app>

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

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

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

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

[java] view plain copy
  1. public String saveword() throws Exception {
  2. FileSaver fs = new FileSaver(request, response);
  3. request.setAttribute("FileSaver", fs);//FileSaver位苦丁的字符串
  4. fs.saveToFile(request.getSession().getServletContext().getRealPath("doc/") + "/" + fs.getFileName());
  5. fs.showPage(300, 300);
  6. message = "结果保存成功!";
  7. return "saveword_"+SUCCESS;
  8. }

客户端的代码:

[html] view plain copy
  1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
  2. <%@ taglib prefix="s" uri="/struts-tags"%>
  3. <%@ taglib uri="http://java.pageoffice.cn" prefix="po"%>
  4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  5. <html>
  6. <head>
  7. <title>My JSP 'editword.jsp' starting page</title>
  8. <meta http-equiv="pragma" content="no-cache">
  9. <meta http-equiv="cache-control" content="no-cache">
  10. <meta http-equiv="expires" content="0">
  11. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  12. <meta http-equiv="description" content="This is my page">
  13. <!--
  14. <link rel="stylesheet" type="text/css" href="styles.css">
  15. -->
  16. </head>
  17. <body>
  18. <!--**************   卓正 PageOffice 客户端代码开始    ************************-->
  19. <script language="javascript" type="text/javascript">
  20. function SaveDocuments() {
  21. document.getElementById("PageOfficeCtrl1").WebSave();
  22. //alert(document.getElementById("PageOfficeCtrl1").CustomSaveResult);
  23. }
  24. function ShowPrintDlg() {
  25. document.getElementById("PageOfficeCtrl1").ShowDialog(4);
  26. }
  27. function SetFullScreen() {
  28. document.getElementById("PageOfficeCtrl1").FullScreen = !document.getElementById("PageOfficeCtrl1").FullScreen;
  29. }
  30. function AddSeal() {
  31. document.getElementById("PageOfficeCtrl1").ZoomSeal.AddSeal();
  32. }
  33. function AddHandSign() {
  34. document.getElementById("PageOfficeCtrl1").ZoomSeal.AddHandSign();
  35. }
  36. function VerifySeal() {
  37. try
  38. {
  39. document.getElementById("PageOfficeCtrl1").ZoomSeal.VerifySeal();
  40. }
  41. catch(e)
  42. {
  43. }
  44. }
  45. </script>
  46. <!--**************   卓正 PageOffice 客户端代码结束    ************************-->
  47. <!--  <div style="width:auto;height:200px;background-color: gray">
  48. </div> -->
  49. <div style="width:auto; height:600px;">
  50. <po:PageOfficeCtrl id="PageOfficeCtrl1" />
  51. </div>
  52. </body>
  53. </html>

pageoffice使用相关推荐

  1. java调用PageOffice生成word

    一.在开发OA办公或与文档相关的Web系统中,难免会遇到动态生成word文档的需求,为了解决工作中遇到导出word文档的需求,前一段时间上网找了一些资料,在word导出这方面有很多工具可以使用,jac ...

  2. js在PageOffice打开的Word文档光标处插入书签

    在使用Word时,如果内容过多有时为了快速定位到内容的某一处或某一部分怎会在该处添加书签.Word中的书签可以通过工具栏手动添加或删除,也可以通过后台程序结合JS函数在当前光标处插入书签,或根据书签名 ...

  3. PageOffice,word常用接口对象--Paragraph类

    2019独角兽企业重金招聘Python工程师标准>>> 做项目时,只要使用Word并涉及到了文本,那么就常常需要对Word的内容进行排版,也就免不了要涉及到段落的设置,而要通过程序对 ...

  4. java 调用office_JAVA调用PageOffice在线打开、编辑Word文档

    普通的MS Office Word只能在本地磁盘上打开和编辑保存,这使得程序员在开发项目时受到很多的约束,许多的功能无法实现或者无法达到理想的效果. 下面我就简单的和大家分享一下如何实现Word文档的 ...

  5. JS调用PageOffice接口,删除Word表格中光标所在行

    在项目开发过程中,可能会遇到需要对Word文件中的表格进行操作的问题, 当想要删除某一行时,一般的做法都是先用选中某一行,再点击右键删除行,这样的操作不仅会降低操作效率而且容易误操作,下面我就来介绍一 ...

  6. PageOffice实现js执行在线编辑时Word文档中的宏命令

    2019独角兽企业重金招聘Python工程师标准>>> 在对Word文档进行操作时有时会需要执行某些宏命令,但在系统中,若要执行宏命令,如果依然通过创建宏.编写宏.执行宏,来实现某些 ...

  7. Java集成PageOffice在线打开编辑word文件 - Spring Boot

    开发环境:JDK1.8.Eclipse.Sping Boot + Thymeleaf框架. 一. 构建Sping Boot + Thymeleaf框架的项目(不再详述): 1. 新建一个maven p ...

  8. PageOffice实现最简单的Java导出Word中的数据

    普通的MS Office Word只能在本地磁盘上打开和编辑保存,这使得程序员在开发项目时受到很多的约束,许多的功能无法实现或者无法达到理想的效果.但是通过调用PageOffice开发平台,不仅可以在 ...

  9. C#在线打开编辑保存Excel文件[pageoffice]

    在项目开发过程中,经常会涉及到生成Excel报表,但往往系统只能通过后台生成Excel报表并保存到服务器上,若想在系统中打开Excel文件并进行编辑保存,有些人可能就没有思路了.因此,为了实现Exce ...

  10. java中插入表格_java 集成 pageoffice 实现在 word 中插入表格并赋值

    Word中的table操作需要借助数据区域(DataRegion)实现的,要求数据区域完整的包含了整个Table的内容,这样才可以通过数据区域控制和操作table.因此,要想使用table,则必须在w ...

最新文章

  1. 解决popup不随着window一起移动的问题
  2. IPM: Mass IP generation can only support 99 numbers of IP at maximum
  3. First Impression on BBED: recover deleted rows
  4. Azkaban的介绍、安装与使用
  5. innosetup 同名文件替换_运维工程师必备命令之文件管理
  6. 基于OpenCV实现------图像的转置
  7. 用户界面和兼容性测试
  8. 匿名内部类为什么访问外部类局部变量必须是final的?
  9. PHP框架TP5.1
  10. 深入浅出数据分析 - 直方图
  11. java三大特征_java三大特性是什么?
  12. DM适配Python
  13. 图文详解 MapReduce 工作流程
  14. hive窗口函数(over)详解
  15. 喷码机墨盒堵了怎么修理清洗
  16. 企业运维之服务管理 -- supervisord
  17. Vue(狂神学习笔记)2021-10-8
  18. C#,基于视频的目标识别算法(Moving Object Detection)的原理、挑战及其应用
  19. js时间搓转时间,日期横杠转斜杠,时间转时间搓,年月日补个零,星期几,获取当前时间
  20. 网络营销招生方案及河南大学生高校名单

热门文章

  1. WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connec
  2. c语言实现演唱会歌迷排队买票问题
  3. 许少辉论乡村振兴战略下传统村落文化旅游设计获勤写标兵
  4. 数据分析必备——统计学入门基础知识
  5. LinuxKernel中文版
  6. Clion和STM32CubeMx新建项目
  7. vs+Qt+GLEW配置
  8. arco-design初始化
  9. 计算机考证二级可以考几个证
  10. 流逝的岁月,致我们逝去的青春