OA公文流转系统主要用于处理企业日常工作中内外部的各种公文,包括了公文的拟稿、审批、传阅、公告、归档,多层上级可以对下级撰写的公文进行逐级审批或修改,待最高级人员确认无误后即可进行核稿和发文等操作,最后在相关人员中传阅。根据文档在OA系统及其它办公系统的中的流转方式,PageOffice组件提供了文档流转的各个环节对应的文件打开模式及相关实用功能,以便于更好地实现OA系统的需求。下面我们详细论述PageOffice在OA系统中的主要使用方式。

一.文档在OA系统中的简略流程

  

二.文档流转的各个环节的详细论述

  1. 起草文档:

  一般文档流转的第一个环节就是起草文档,在此环节文员需要自由编辑文档而不用留下任何痕迹,所以PageOffice为了这个环节开发出来了文档的普通编辑模式(docNormalEdit)。在这个模式下文员可以自由编辑文档内容,并不会留下任何痕迹。

PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
poCtrl1.webOpen(filePath, OpenModeType.docNormalEdit, userName);

  2. 领导批阅

  一般文档流转的过程中各个阶层的领导都会对文员在第一步中起草的文档进行修改,添加批注等操作,这时对文档所做的任何修订都必须以痕迹的形式保留下来,以便于更高层的领导进行审核,所以PageOffice开发出来了文档的强制留痕模式(docRevisionOnly)。在这种模式下,用户对文档做的任何修订都会被记录下来;不同用户对文档做的修订会自动用不同的颜色标记; 用户不能接受、拒绝其他用户对此文档所做的任何修订;修订记录能够显示修订者的名字,修订时间及修订内容。

PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
poCtrl1.webOpen(filePath, OpenModeType.docRevisionOnly, userName);

  3. 文员清稿

  在这一环节,文员将对文档进行清稿工作,包括拒绝或者接受修订,清除文档的所有痕迹及手写内容(对文档进行电子签章的环节一般也是使用此模式打开文件的),所以这一环节将用到PageOffice的核稿模式(docAdmin),在这种模式下, 用户能够清理文档流转过程中留下的各种修订、修改、批注及手写批注;用户可以显示或隐藏修订痕迹;用户可以自由编辑文档而不会留下任何痕迹记录;用户还可以移动、删除任何人的手写批注。

PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
poCtrl1.webOpen(filePath, OpenModeType.docAdmin, userName);

  4. 正式发文

      一般文档流转的最后一个环节就是正式发文环节,在这一个环节,不需要用户再对文档做任何修改,所以就用到了PageOffice的只读模式(docRealOnly)打开文档, 在该模式下用户只能阅读文档内容,不能对文档做任何修改。如果配合 PageOffice的禁止复制、禁止另存、禁止打印等功能,还可以实现安全的文档在线浏览功能。

PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
poCtrl1.webOpen(filePath, OpenModeType.docReadOnly, userName);

三.其他相关功能

  1. 显示隐藏痕迹:(痕迹一般指的是键盘批注和留痕模式用户删除或插入的文档内容,这些统称为痕迹,不包含手写批注)

    document.getElementById("PageOfficeCtrl1").ShowRevisions = false|true;

  2. 领导圈阅,手写批注:

    document.getElementById("PageOfficeCtrl1").HandDraw.Start();

  3. 分层显示手写批注:

    document.getElementById("PageOfficeCtrl1").HandDraw.ShowLayerBar();

  4. 插入键盘批注:

    document.getElementById("PageOfficeCtrl1").WordInsertComment();

  5. 接受所有修订:

    document.getElementById("PageOfficeCtrl1").AcceptAllRevisions();

  6. 拒绝所有修订:

    document.getElementById("PageOfficeCtrl1").Document.RejectAllRevisions();

  7. 插入印章:

    document.getElementById("PageOfficeCtrl1").ZoomSeal .AddSeal();

  8. 插入手写签名章:

    document.getElementById("PageOfficeCtrl1").ZoomSeal. AddHandSign();

  9. 另存HTML:

    document.getElementById("PageOfficeCtrl1").WebSaveAsHTML();

  10. 另存PDF:

    document.getElementById("PageOfficeCtrl1").WebSaveAsPDF();

四.总结

  综上所述,PageOffice针对文档在OA办公系统或其他文档办公系统中不同流程环节的特点,开发了对应的模式,还提供了显示隐藏痕迹、手写批注、分层显示手写、签字盖章、另存控制、保存控制等各种功能,使得开发人员只需关注自身系统的业务逻辑开发,很简单方便的利用PageOffice实现不同流程环节下的控制和功能,代码清晰明了,极大的节省了系统的开发时间,提高开发工作效率。

五.源码下载

  https://download.csdn.net/download/zi_wu_xian/10400267

[转载]java开发实现word在线编辑及流转的更多相关文章

  1. [原创]java开发实现word在线编辑及流转

    OA公文流转系统主要用于处理企业日常工作中内外部的各种公文,包括了公文的拟稿.审批.传阅.公告.归档,多层上级可以对下级撰写的公文进行逐级审批或修改,待最高级人员确认无误后即可进行核稿和发文等操作,最 ...

  2. word在线编辑\生成图片(包含截图与合并)

    1.业务原因 word编辑后的文章复制到html编辑器(fck等)会发生排版错乱的情况,于是混沌了.需要有一个新的方法来终结,于是产生了word能不能在线编辑,后台保存,前台显示灯一系列问题. 2.首 ...

  3. [转载]Java开发在线打开编辑保存Word文件

    Java调用logo是“P”图标的第三方插件,实现在线编辑保存Word文件(以jsp调用为例,支持SSM.SSH.SpringMVC等流行框架) 工具/原料   Eclipse或MyEclipse等j ...

  4. java 网站源码 在线编辑模版 代码编辑器 兼容手机平板PC freemaker 静态引擎

    前台: 支持四套模版, 可以在后台切换   系统介绍: 1.网站后台采用主流的 SSM 框架 jsp JSTL,网站后台采用freemaker静态化模版引擎生成html 2.因为是生成的html,所以 ...

  5. Java开发常用的在线工具

    原文出处: hollischuang(@Hollis_Chuang) 作为一个Java开发人员,经常要和各种各样的工具打交道,除了我们常用的IDE工具以外,其实还有很多工具是我们在日常开发及学习过程中 ...

  6. [开发工具]Java开发常用的在线工具

    注明: 本文转自http://www.hollischuang.com/archives/1459.作为一个Java开发人员,经常要和各种各样的工具打交道,除了我们常用的IDE工具以外,其实还有很多工 ...

  7. [ 转载 ] Java开发中的23种设计模式详解(转)

    Java开发中的23种设计模式详解(转)   设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类 ...

  8. 《ArcGIS Runtime SDK for .NET开发笔记》--在线编辑

    介绍 ArcGIS可以发布具有编辑功能的Feature Service.利用Feature Service我们可以实现对数据的在线编辑. 数据制作参考: https://server.arcgis.c ...

  9. [转载] Java开发在线编辑Word同时实现全文检索

    一.背景介绍 Word文档与日常办公密不可分,在实际应用中,当某一文档服务器中有很多Word文档,假如有成千上万个文档时,用户查找打开包含某些指定关键字的文档就变得很困难,一般情况下能想到的解决方案是 ...

随机推荐

  1. django博客项目2.建立 Django 博客应用

    建立博客应用 我们已经建立了 Django 博客的项目工程,并且成功地运行了它.不过到目前为止这一切都还只是 Django 为我们创建的项目初始内容,Django 不可能为我们初始化生成博客代码,这些 ...

  2. 列表(List) 的增删改查及其他方法

    一.列表的简介   列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[ ]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:li = ...

  3. JS获取当年当月最后一天日期

    <html xmlns="http://www.w3.org/1999/xhtml" > <meta charset="UTF-8"> ...

  4. Appium的Java封装

    文章出处 http://blog.csdn.net/niubitianping/article/details/52612211 一.为什么需要封装? 封装的本意就是为了方便.简洁. 二.Androi ...

  5. django【原生分页】

    1.urls.py url(r'^page2/',views.page2), 2.views.py from django.core.paginator import Paginator,PageNo ...

  6. day3-python的基础类源码解析——collection类

    1.计数器(counter) Counter是对字典类型的补充,用于追踪值的出现次数. ps:具备字典的所有功能 + 自己的功能 我们从中挑选一些相对常用的方法来举例: 在上面的例子我们可以看出,co ...

  7. Codeforces Round #304 (Div.2)

    A. Soldier and Bananas 题意:有个士兵要买w个香蕉,香蕉起步价为k元/个,每多买一个则贵k元.问初始拥有n元的士兵需要借多少钱? 思路:简单题 #include<iostr ...

  8. QMesageBox的使用

    一.使用构造函数弹出对话框 1. QMessageBox msgBox://最简单的对话框,里面什么也没有 QString str = “test”: msgBox.setText(str); msg ...

  9. Windows Server 2008 R2服务器遗忘管理员密码解决方案

     A goal is a dream with a deadline. Much effort, much prosperity.  在日常的工作中,对于一个网络管理员来讲最悲哀的事情莫过于在没有备用 ...

  10. Linux系统基本的内存管理知识讲解

    内存是Linux内核所管理的最重要的资源之一.内存管理系统是操作系统中最为重要的部分,因为系统的物理内存总是少于系统所需要的内存数量.虚拟内存就是为了克服这个矛盾而采用的策略.系统的虚拟内存通过在各个 ...