用 pageoffice 实现文档的在线编辑以及文档流转

1: 流程

用修改无痕迹模式起草文件,各个领导批注自己意见的时候使用强制留痕模式打开,文员清稿的时候用核稿模式打开,还有最后只读模式打开发布的正式文件。其中在领导批注环节也演示了PageOffice提供的手写功能,在文件核稿之后可以加盖印章。

2:详细代码

<!-- 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.zz</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-mapping><servlet-name>poserver</servlet-name><url-pattern>/pageoffice.js</url-pattern></servlet-mapping><servlet-mapping><servlet-name>poserver</servlet-name><url-pattern>/jquery.min.js</url-pattern></servlet-mapping><servlet-mapping><servlet-name>poserver</servlet-name><url-pattern>/pobstyle.css</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.zz</url-pattern></servlet-mapping><servlet-mapping><servlet-name>adminseal</servlet-name><url-pattern>/loginseal.zz</url-pattern></servlet-mapping><servlet-mapping><servlet-name>adminseal</servlet-name><url-pattern>/sealimage.zz</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><!-- PageOffice End -->
<a href="word.jsp?type=creat">在线编辑</a> →
<a href="word.jsp?type=check&user=张三">张三批阅 </a> →
<a href="word.jsp?type=check&user=LiSi">李四批阅</a> →
<a href="word.jsp?type=accept">文员清稿</a> →
<a href="word.jsp?type=publish">正式发文</a>
<%@ page language="java"import="java.util.*,com.zhuozhengsoft.pageoffice.*,com.zhuozhengsoft.pageoffice.wordwriter.*"pageEncoding="UTF-8"%>
<%@page import="java.awt.Color"%>
<%String type = (String) request.getParameter("type");String user = (String) request.getParameter("user");PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);//设置服务器页面poCtrl.setServerPage(request.getContextPath() + "/poserver.zz");//添加自定义按钮poCtrl.addCustomToolButton("保存", "Save", 1);poCtrl.addCustomToolButton("全屏/还原", "IsFullScreen", 4);//设置保存页面poCtrl.setSaveFilePage("SaveFile.jsp");if ("creat".equals(type)) {//普通编辑模式打开文档 打开Word文档poCtrl.webOpen("doc/test.doc", OpenModeType.docNormalEdit,"张佚名");}if ("check".equals(type)) {poCtrl.addCustomToolButton("显示/隐藏痕迹", "Show_HidRevisions", 5);poCtrl.addCustomToolButton("领导圈阅", "StartHandDraw", 3);poCtrl.addCustomToolButton("插入键盘批注", "StartRemark", 3);poCtrl.addCustomToolButton("分层显示手写批注", "ShowHandDrawDispBar",7);//强制留痕模式打开文档 打开Word文档poCtrl.webOpen("doc/test.doc", OpenModeType.docRevisionOnly,user);}if ("accept".equals(type)) {poCtrl.addCustomToolButton("显示/隐藏痕迹", "Show_HidRevisions", 5);poCtrl.addCustomToolButton("插入印章/签名", "InsertSeal", 2);poCtrl.addCustomToolButton("接受所有修订", "AcceptAllRevisions", 5);poCtrl .addCustomToolButton("分层显示手写批注", "ShowHandDrawDispBar",7);//核稿模式打开文档 打开Word文档poCtrl.webOpen("doc/test.doc", OpenModeType.docAdmin, "张佚名");}if ("publish".equals(type)) {poCtrl.addCustomToolButton("另存到本地", "ShowDialog(0)", 5);poCtrl.addCustomToolButton("页面设置", "ShowDialog(1)", 0);poCtrl.addCustomToolButton("打印", "ShowDialog(2)", 6);poCtrl.setMenubar(false);poCtrl.setOfficeToolbars(false);//只读模式打开文档 打开Word文档poCtrl.webOpen("doc/test.doc", OpenModeType.docReadOnly, "张佚名");}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><script type="text/javascript">//保存function Save() {document.getElementById("PageOfficeCtrl1").WebSave();}//全屏/还原function IsFullScreen() {document.getElementById("PageOfficeCtrl1").FullScreen = !document.getElementById("PageOfficeCtrl1").FullScreen;}//显示/隐藏痕迹function Show_HidRevisions() {document.getElementById("PageOfficeCtrl1").ShowRevisions = !document.getElementById("PageOfficeCtrl1").ShowRevisions;}//领导圈阅签字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 AcceptAllRevisions() {document.getElementById("PageOfficeCtrl1").AcceptAllRevisions(); }function ShowDialog(index) {if (index == 0) document.getElementById("PageOfficeCtrl1").ShowDialog(2);if (index == 1) document.getElementById("PageOfficeCtrl1").ShowDialog(5);if (index == 2) document.getElementById("PageOfficeCtrl1").ShowDialog(4);}//插入印章function InsertSeal(){try {document.getElementById("PageOfficeCtrl1").ZoomSeal.AddSeal();} catch(e) {}}</script></head><body><div style="height: 850px; width: 1036px; overflow: hidden;"><%=poCtrl.getHtmlCode("PageOfficeCtrl1")%></div></body>
</html>

保存代码

FileSaver fs=new FileSaver(request,response);
fs.saveToFile(request.getSession().getServletContext().getRealPath("doc/")+"/"+fs.getFileName());
fs.close();

3:注意事项

(1)此示例演示了简单的文件流转,没有返回. 如需返回重新编辑审阅文档,可以写自己的逻辑

(2)本示例 用到的印章是pgaeoffice 自带的简易印章. 用的是 sqlite 数据库. 必须复制sqlite 的jar 以及 poseal.db文件. 可以到http://www.zhuozhengsoft.com/dowm/  下载试用程序.里面有对应的文件

转载于:https://my.oschina.net/u/3507515/blog/2051340

java 实现 word 文档的在线编辑以及流转相关推荐

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

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

  2. Java 实现 word 文档的在线签字盖章功能

    1:需求 在某些公文流转.电子政务.OA.CRM.ER P.档案管理.人事管理各种系统开发中,某些客户可能会希望通过系统来实现签订某些电子文件或合同,而非还是必须通过纸质文件来实现.而电子签章就是为实 ...

  3. java填充word文档_如何使Word文档可填充但不可编辑

    java填充word文档 If contracts are part of your daily workflow, you know how frustrating it is when peopl ...

  4. java通过POI和jacob实现word文档的在线预览和下载

    通过POI和jacob可以实现word文档的在线预览和下载. 首先,引入以下maven依赖. <dependency><groupId>org.apache.poi</g ...

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

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

  6. java 界面艺术字,Java 在Word文档中添加艺术字

    与普通文字相比,艺术字更加美观有趣也更具有辨识度,常见于一些设计精美的杂志或宣传海报中.我们在日常工作中编辑Word文档时,也可以通过添加艺术字体来凸显文章的重点,美化页面排版.这篇文章将介绍如何使用 ...

  7. Java 生成Word文档 — 简单示例

    前言 这篇文章将介绍如何使用免费Java Word组件Free Spire.Doc for Java在Java应用程序中生成Word文档,插入文本,并设置段落的字体格式.对齐方式以及段后间距等. Fr ...

  8. [摘]用Java生成Word文档

    开发中隔三叉五的就要用到Word,经常被搞得不胜其烦,不过这次找到了不少好例子,干脆将他们都摘了过来,内容如下: 1. poi是apache的一个项目,不过就算用poi你可能都觉得很烦,不过不要紧,这 ...

  9. Word处理控件Aspose.Words功能演示:使用 Java 将 Word 文档转换为 Markdown

    大多数智能设备,如智能手机.平板电脑.笔记本电脑等,都支持EPUB格式来查看或阅读文档.它是电子书或电子出版物的常用格式.另一方面,MS Word 格式,如DOCX.DOC等,是数字世界中广泛使用的文 ...

  10. Java操作word文档将docx转换为pdf格式

    Java操作word文档将docx转换为pdf格式 一.整体说明 在上传 Office 课件时,格式有:doc,docx,xls,xlsx,ppt,pptx,程序需要将其 转换成 pdf 格式, 才能 ...

最新文章

  1. Emai乱码——解决的“迂回”战术
  2. TFS自定义开发中的反射应用
  3. 详解python的super()的作用和原理
  4. #RANK_1 极其简单的递归——骑士与金币
  5. pb自定义控件 事件_Android WebView与下拉刷新控件滑动冲突的解决方法
  6. Java文件保存与删除工具类
  7. 数据库系统实训——实验六——游标
  8. 03Linux用户和组及权限
  9. 荟萃分析6项研究表明炎症与骨赘形成有关联
  10. 用IIS建立高安全性Web服务器
  11. 子div撑不开父div的几种解决方法
  12. oledb操作Excel
  13. windows server 部署java Web项目
  14. AI智能语音识别计算器
  15. STM32-GPRS模块连接系统主站
  16. 主动学习,半监督学习,直推式学习
  17. 三国杀全武将台词大全(标准+神话再临+一将成名12345+SP+国战+其他+皮肤,更新中)
  18. 【XXE技巧拓展】————8、黑夜的猎杀-盲打XXE
  19. 物联网周刊(第 6 期):开源硬件公司 Adafruit
  20. 华为5c_华为荣耀畅玩5C什么配置参数?标配有什么?

热门文章

  1. 结构化思维,让你的工作有条不紊
  2. Linux自启进程管理工具,Linux进程管理工具--God-详解(1)-入门
  3. 用Python写爬虫代码,记录斗鱼主播的热度变化情况,并绘制热度变化图。
  4. CrystalQuartz实现Quartz的window服务的远程管理
  5. gentoo 下Local time zone must be set--see zic manual page解决办法
  6. [相机原理]单反与手机是如何实现对焦的?——反差对焦的原理
  7. [VT虚拟化驱动]利用EPT实现无痕HOOK
  8. uva 10827 Maximum sum on a torus
  9. android实现菜单侧滑栏,Android侧滑-RecyclerView轻松实现高效的侧滑菜单
  10. osm数据导入mysql_利用OpenStreetMap(OSM)数据搭建一个地图服务