使用iWebOffice实现电子签章

摘要:随着信息化的发展电子签章已经越来越多的被用到很多OA系统中,今天就来看一下如何使用iWebOffice来实现电子签章功能。

内容:

1.iWebOffice2003的基本原理

2.使用iWebOffice2003实现电子签章

一、iWebOffice2003的基本原理

在开始今天的主题之前先简单的说一下iWebOffice的原理。iWebOffice控件由两部分组成:一个是用于集成在页面上的iWebOffice2003.ocx文件,另一个是运行在后台服务器上的iMsgServer2000.dll文件。前者就是大家所熟知的ActiveX插件,当然要使用它在客户端必须安装此插件,后者是用于配合前者的请求进行通信,事实上控件工作的原来正是前后台通信和处理的过程。iWebOffice2003.ocx集成在页面上,通过js脚本调用,用户文档的编辑以及传递消息到服务器;iMsgServer2000.dll在服务器端运行,用于解析iWebOffice2003.ocx控件发过来的信息包,以及将服务器上处理的结果反馈给客户端iWebOffice2003.ocx

iWebOfficePrinciple

首先来看前端的代码,可以说同其他ActiveX几乎完全一样。classid是固定的,是控件的注册id,这也是所有com组件必须拥有的;codebase由两部分组成#version之前的是控件的下载地址,后面是控件版本号,这两者当然务必要写正确,否则会造成控件不能正常下载、显示和使用。

前端页面代码:

<OBJECT id="CWebOffice" width="100%" height="100%" classid="clsid:23739A7E-5741-4D1C-88D5-D50B18F7C347" codebase=" iWebOffice2003.ocx#version=6,0,0,4 " ></OBJECT>

如果classid和version没有设置错的话运行会显示控件(前提是客户端安装了iWebOffice插件),当然此时还不能打开文档,因为前端还没有js调用。为了方便调用,这里将js操作部分加以封装(注意封装部分用到了Ext面向对象):

/*
    Author:KenshinCui
    Date:2011.11.16
    Description:weboffice operate class.
*/
Ext.useShims=true;
Ext.namespace("Cmj.Web.ExtExtend");
Cmj.Web.ExtExtend.WebOffice=Ext.extend(Ext.util.Observable,{
    constructor:function(config){
//        this.addEvents("beforeopen");
//        this.addEvents("open");
//        this.addEvents("beforeprint");
//        this.addEvents("print");
//        this.addEvents("beforeopen");
//        this.addEvents("open");
//        this.addEvents("beforeopen");
//        this.addEvents("open");
        this.listeners=config.listeners;
        Cmj.Web.ExtExtend.WebOffice.superclass.constructor.call(this,config);
 
        this.objectID=config.objectID;//客户端对象id
        this.webUrl=config.webUrl;//weboffice 的服務器端操作url
        this.fileName=config.fileName;//文件名称(不包含完整路径并且后缀可有可无,如果没有后缀的话则必须配置fileType属性)
        if(config.fileType!=void 0){
            this.fileType=config.fileType;
        }else{
            this.fileType="";
        }
        this.webOffice=Ext.getDom(this.objectID);
    },
    getObject:function(){
        return this.webOffice;
    },
    load:function(){
        WebOffice=this.webOffice;
        try{
            WebOffice.WebUrl=this.webUrl;
            WebOffice.RecordID="cid";
            WebOffice.Template="";
            WebOffice.FileName=this.fileName;
            WebOffice.FileType=this.fileType;
            WebOffice.EditType="1";
            WebOffice.UserName="SYSTEM";
 
            WebOffice.WebOpen();    //打开该文档    
            window.status=WebOffice.Status;
        }catch(e){
            Ext.Msg.alert("系统提示","打开文档过程中发生错误,错误信息:"+e.message);
        }
    },
    showMenu:function(bool){
        try{
            this.webOffice.ShowMenu=bool?"1":"0";
        }catch(e){
            Ext.Msg.alert("系统提示","设置菜单显示状态时发生错误,错误信息:"+e.message);
        }
    },
    addMenus:function(menuArray){
        try
        {
            var menu=Ext.getDom('menuEventScript');
            for(var i=1;i<=menuArray.length;++i){
                if(menuArray[i-1]=="save"){
                    this.webOffice.AppendMenu(i,"保存");
                    menu.text+="if(Index=="+i+"){Ext.getDom('CWebOffice').WebSave();}";   
                }else if(menuArray[i-1]=="saveAs"){
                    this.webOffice.AppendMenu(i,"另存为");
                    menu.text+="if(Index=="+i+"){Ext.getDom('CWebOffice').WebSaveLocal();}";   
                }else if(menuArray[i-1]=="print"){
                    this.webOffice.AppendMenu(i,"打印");
                    menu.text+="if(Index=="+i+"){Ext.getDom('CWebOffice').WebOpenPrint();}";   
                }else if(menuArray[i-1]=="signature"){
                    this.webOffice.AppendMenu(i,"电子签章");
                    menu.text+="if(Index=="+i+"){Ext.getDom('CWebOffice').WebOpenSignature();}";   
                }
            }
        }catch(e){
            Ext.Msg.alert("系统提示","创建菜单过程中发生错误,错误信息:"+e.message);
        }
    },
    save:function(){//保存到服务器
        try{
            this.webOffice.WebSave();
        }catch(e){
            Ext.Msg.alert("系统提示","文档保存时发生错误,错误信息:"+e.message);
        }
    },
    saveAs:function(){//另存到客户端
        try{
            this.webOffice.WebSaveLocal();
        }catch(e){
            Ext.Msg.alert("系统提示","文档另存时发生错误,错误信息:"+e.message);
        }
    },
    print:function(){
        try{
            this.webOffice.WebOpenPrint();
        }catch(e){
            Ext.Msg.alert("系统提示","文档打印时发生错误,错误信息:"+e.message);
        }
    },
    signature:function(type){//打开电子签章操作窗口
        try{
            if(arguments.length>0){
                this.webOffice.WebOpenSignature(type);
            }else{
                this.webOffice.WebOpenSignature();
            }
        }catch(e){
            Ext.Msg.alert("系统提示","打开电子签章窗口时发生错误,错误信息:"+e.message);
        }
    }
     
});

这里继承了Ext的Obse

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
iWebOffice2003是一个基于Web文档处理中间件 =============================================================================== iWebOffice系列文档控件,是江西金格网络科技有限责任公司经过两年的完全自主开发设计,拥有自主知识产权的中间件软件,于2003年3月取得了国家软件著作权保护,于2003年12月取得了江西省软件产品登记证,同年被列为创新基金项目,该软件完全按照办公软件对公文文档需求标准设计,全国率先提出并实现文档线编辑的梦想和构架,产品开发完成后,已经得到了广大客户的认可,成为许多软件开发公司开发(OA)办公软件的首选标准控件。我们始终专注该产品的研发,引领这一领域的技术发展方向。 iWebOffice系列文档控件,能够在浏览器窗口中直接编辑Word、Excel、PowerPoint等Office文档并保存到Web服务器上。实现文档和电子表格和数据库的统一管理。同时支持痕迹保留,手写签名,电子印章等办公自动化系统必备的功能。是OA系统开发的标准控件,是保护您投资的最佳选择!控件采用标准HTTP协议,支持任意后台Web服务器(IIS,WebLogic,WebSphere,Apache,Tomcat等),任意后台操作系统(Windows 2000/2003/XP,Linux, Unix等),以及任意后台编程语言(Asp, Jsp, Php,VB.NET,C#.NET等)和任意Web应用服务器体系结构(J2ee, .NET等)。卓越的性能,标准高效的编程接口,让您以最低的开发成本,轻松创建极具特色的办公自动化解决方案! 目前政府信息化,办公自动化正如火如荼的进行,而Microsoft Office是办公文档中用的最普遍的一种文档编辑工具,其格式是最普遍公文载体,在办公自动化系统中,如何与Microsoft Office文档结合,是很多软件开发公司一直在摸索的问题,我们根据这种情况,采用自定义数据结构协议,自行研制开发了基于Web方式的Microsoft Office网络文档中间件管理方案。这个方案是整个办公系统中的文档处理部分,完全与Microsoft Office兼容,软件开发公司可以利用该方案,与自己研制的办公自动化系统相结合,开发出真正符合办公自动化需求的软件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值