用修改无痕迹模式起草文件,各个领导批注本身意见的时候使用强制留痕模式打开,文员清稿的时候用核稿模式打开,还有最后只读模式打开发布的正式文件。其中在领导批注环节也演示了PageOffice提供的手写功能,在文件核稿以后能够加盖印章。javascript
<!-- 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();
(1)此示例演示了简单的文件流转,没有返回. 如需返回从新编辑审阅文档,能够写本身的逻辑css
(2)本示例 用到的印章是pgaeoffice 自带的简易印章. 用的是 sqlite 数据库. 必须复制sqlite 的jar 以及 poseal.db文件. 能够到http://www.zhuozhengsoft.com/dowm/ 下载试用程序.里面有对应的文件html