Java实现在线打开word文档并强制留痕/留下痕迹
前言:
在OA系统中,时不时的都会伴随着文档流转过程。
比如有的系统中会有领导审批的流程,那么在A领导审批完成后,他的审批痕迹能不能强制保留下来,以供下一步处理文档的专员清晰地参考呢?
我们知道,在本地office打开的文档中,如果点击 审阅---修订,就会将编辑的记录跟踪下来留下痕迹。
我们在线办公的系统中能不能直接将这一步由我们系统来做,避免出现用户操作不一致最终没留下痕迹的现象呢?
这些需求在分析后看似很复杂,甚至想要实现时摸不着头脑。
本篇文章直接介绍一个中间件技术-----pageoffice,让大家在10分钟内将这个需求解决掉。并且文章末会免费提供破解码哦!
先看效果:
部署步骤(只需5步)
1.官网http://www.zhuozhengsoft.com/dowm/下载集成文件,引入jar包,配置web.xml
去刚才下载的集成文件中找到lib,将里面的内容放在项目web-inf的lib中引入jar包,然后将web.xml的pageoffice配置引入到自己项目的wb.xml中
2.在父页面aaa.jsp(需要打开文档的页面)放一个a标签或者button
写a标签之前先引入pageoffice需要的js文件
1 2 | <script type= "text/javascript" src= "/jquery.min.js" ></script> <script type= "text/javascript" src= "/pageoffice.js" id= "po_js_main" ></script> |
然后添加a标签
<a href="javascript:POBrowser.openWindowModeless('Word.jsp', 'width=1050px;height=900px;');">强制留痕打开文档</a>
3.在父页面同级目录下创建一个名为Word.jsp的文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | <%@ page language="java" import="java.util.*,com.zhuozhengsoft.pageoffice.*" pageEncoding="utf-8"%> <% PageOfficeCtrl poCtrl=new PageOfficeCtrl(request); //设置服务器页面 poCtrl.setServerPage(request.getContextPath()+"/poserver.zz"); //添加自定义按钮 poCtrl.addCustomToolButton("保存","Save",1); poCtrl.addCustomToolButton("隐藏痕迹","hideRevision",18); poCtrl.addCustomToolButton("显示痕迹","showRevision",9); //设置保存页面 poCtrl.setSaveFilePage("SaveFile.jsp"); //打开Word文档 poCtrl.webOpen("test.doc",OpenModeType.docRevisionOnly,"李斯"); %> <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> < html > < head > < meta charset="utf-8"> < title >XX文档系统</ title > < style > #main{ width:1040px; height:890px; border:#83b3d9 2px solid; background:#f2f7fb; } #shut{ width:45px; height:30px; float:right; margin-right:-1px; } #shut:hover{ } </ style > </ head > < body style="margin:0; padding:0;border:0px; overflow:hidden" scroll="no"> < script type="text/javascript"> function Save() { document.getElementById("PageOfficeCtrl1").WebSave(); } function showRevision() { document.getElementById("PageOfficeCtrl1").ShowRevisions = true; } function hideRevision() { document.getElementById("PageOfficeCtrl1").ShowRevisions = false; } </ script > < div id="main"> < div id="content" style="height:850px;width:1036px;overflow:hidden;"> <%=poCtrl.getHtmlCode("PageOfficeCtrl1")%> </ div > </ div > </ body > </ html > |
4.在父页面同级目录下创建一个SaveFile.jsp文件
1 2 3 4 5 6 7 | <%@ page language="java" import="java.util.*,com.zhuozhengsoft.pageoffice.*" pageEncoding="utf-8"%> <% FileSaver fs=new FileSaver(request,response); fs.saveToFile(request.getSession().getServletContext().getRealPath("/")+"\\"+fs.getFileName()); fs.close(); %> |
5.新建一个名为test.doc的word文件(如果新建的是docx文件就将第三步的poCtrl.webOpen("test.doc",OpenModeType.docRevisionOnly,"李斯");
代码改为poCtrl.webOpen("test.docx",OpenModeType.docRevisionOnly,"李斯");
将新建的word文件随便编辑点内容放在父页面同级目录下.然后启动项目直接访问aaa.jsp点击链接.此时会提示安装插件,点击安装成功后提示注册,填写相关信息,
填写注册码CA1XB-MF7Y-12ST-PSBP2就可以打开文档.
注意:如果需要更丰富的功能,大家可以去pageoffice官网下载示例代码直接将samples4文件夹扔到Tomcat的webapps下,启动Tomcat,
浏览器访问http://localhost:8080/Samples4/index.html,查看示例中的下面一个链接,直接看samples4文件夹下RevisionOnly文件夹里面的代码.
刚开始接触pageoffice的话,也可以看视频快速上手
.http://www.zhuozhengsoft.com/Technical/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南