当前位置: 代码迷 >> Web前端 >> 电子图章和签名WebSign学习和应用2
  详细解决方案

电子图章和签名WebSign学习和应用2

热度:246   发布时间:2012-07-29 15:26:14.0
电子印章和签名WebSign学习和应用2

二、WEB页面调用控件

<object  id=“DWebSignSeal”classid='CLSID:77709A87-71F9-41AE-904F-886976F99E3E' 
      codebase=http://www.XXX.com.cn/demo/websign/WebSign.ocx#version=4,0,0,0 width = 0 height = 0>

参数说明:

Id                           

    控件的标示,通过标示调用控件的方法、属性,标示必须为”DWebSignSeal”

codebase               

  设置控件自动下载的路径,用户如果没有安装控件,系统会自动访问codebase的路径下载控件;”#version=”后的是控件的版本,如果用户当前的软件版本低于”#version=”后面的版本,系统也会自动下载最新的控件。

三:接口说明

1:long SetSignData(BSTRstrSignData)


功能:
      设置(印章或签名)所绑定的原始数据,更可以绑定Html中域的区域,可连续调用 
参数:
      strSignData: 签名的数据
数据格式:
      控制字符+标识字符串+具体的数值 
控制字符:
      '-'  :表示清空当前绑定的数据
      '+'  :表示增加绑定数据
标识字符串:
      "DATA:"   :表示签名的是具体的数值
      "LIST:"    :表示签名的是Html中域的数值,多个域可以一起设置,间隔符为 ';'
返回值:
       0: 正确;非零失败。
示例:
//取消原先所有的绑定
    document.all.DWebSignSeal.SetSignData("-");
//绑定数据 strData = "文号:0001,单位:中国信息,……"
    document.all.DWebSignSeal.SetSignData("+DATA:" + strData);
//绑定Html域 比如需要绑定Form中的两个域 DocName 和 DocID
    document.all.DWebSignSeal.SetSignData("+LIST:DocName;DocID;");



2:Void SetPosition(longlPosX, long lPosY, BSTR strTagName)

功  能:
      在盖章之前,可以通过这个接口设置所盖印章的位置。
参数:
     lPosX: 印章的X坐标,单位:像素。
     lPosY: 印章的Y坐标,单位:像素。
     strTagName: 参照物的元素的ID,比如可以设置所添加的印章相对于id=strTagName的元素的位置,如果此参数为空,则相对于Body的位置。
目前只有两种元素适用于这种绑定机制
A.元素为表结构的<td>标识,如下:
<table>
      <tr>
         <td id="SealPostion"> 
         </td>
      </tr>
</table>
B. 元素为层,如下:
<div id="SealPostion">
   <input  name = "ID"  type="text" value="00000001"> 
</div>  
返回值:无 
说  明:
     此接口要在盖章或者签名之前设置,这样印章的初始位置,就会移动到设置的位置。
示  例:
//设置初始印章移动到当前窗口位置的 (200,400)像素位置。
      document.all.DWebSignSeal. SetPosition (200,400, "");
//设置初始印章移动到id="SealPostion"的<td>的 (200,400)像素位置。
      document.all.DWebSignSeal. SetPosition (0,0, "SealPostion");


3:BSTR AddSeal(BSTRstrSealPath, BSTR strSealName) 

功  能:
       执行盖章操作,根据版本不同,印章数据可以来自本地硬盘、USB智能卡、远程服务器。
参数:
      strSealPath: 
                 印章文件的地址,可以是本地路径,如:c:\合同章.sel ;也可以是服务器地址,如:http://222.22.22.2/oa/合同章.sel  或者http://222.22.22.2/oa/GetSeal.jsp?id=10 而GetSeal.jsp根据id,从数据库中返回印章的二进制数据(Reponse.Wrtie)。如果此参数为空,系统会弹出文件选择框来浏览印章文件。系统会直接从USB智能卡中获取印章数据。
     strSealName: 
               添加的印章的唯一名称,此参数非常重要,用户可以自己命名,但是同一个Html页面中,必须保证唯一。如果此参数为空,则系统会自动生成唯一的印章名称,并返回。
    返回值:
         运行成功返回印章的名称,否则返回空。印章的名称很重要,很多情况下需要设置印章的名称,比如数据验证、签名验证… …
  说  明:
        调用该接口前可以先执行SetSignData方法设置签名绑定数据或者绑定具体的域。运行该接口后,会在网页的控件位置出现经过数字签名的印章,您可以移动印章到合适的位置,然后设置印章位置锁定,这样印章的位置就固定了。
示  例:
//从USB卡中获取印章数据(卡版本),并返回所盖印章在Html页面中的唯一的名称
     var  strSealName = document.all.DWebSignSeal.AddSeal("","");
//从文件中获取印章数据(文件版本),并返回所盖印章在Html页面中的唯一的名称
    var  strSealName = document.all.DWebSignSeal.AddSeal("","");
//指定印章的详细路径,并设置"hetongSeal"为印章的名称
var  strSealName = document.all.DWebSignSeal.AddSeal("c:\\合同章.sel","hetongSeal");


4:BSTR HandWrite(longlPenWidth, long lPenColor, BSTR strSealName)      

功  能:
     执行全屏幕手写状态,此时用户可以在Html页面的任何地方签署手写意见,保存后,手写印章数据会被作为签名来保存。此手写签名在本系统上与印章处于同种地位。
参数:
     lPenWidth: 
         签字默认笔粗细,1-16。(为0将会使用上次的设置)
        lPenColor: 
          RGB值,可以使用十进制或十六进制数表示,如:
0x0000FF 表示画笔为红色	
0x00FF00 表示画笔为绿色
0xFF0000 表示画笔为蓝色
0x000000 表示画笔为黑色
0xFFFFFF 表示画笔为白色。
      strSealName: 
       添加的手写签名的唯一名称,此参数非常重要,用户可以自己命名,但是同一个Html页面中,必须保证唯一。如果此参数为空,则系统会自动生成唯一的名称,并返回。
返回值:
      运行成功返回此手写签名的名称,否则返回空。名称很重要,很多情况下需要设置名称,比如数据验证、签名验证… …
说  明:
调用该接口前可以先执行SetSignData方法设置签名绑定数据或者绑定具体的域。运行该接口后,您可以在Html的任何地方进行手写签批,签批保存后重新显示页面时,再调用ShowWebSeals来显示数据,您可以移动签批到合适的位置,然后设置位置锁定,这样手写签批的位置就固定了。
示  例:
//默认笔宽为2,笔的颜色为红色,并返回所写数据在Html页面中的唯一的名称
 var  strSealName = document.all.DWebSignSeal.HandWrite (2,255, "");
//默认笔宽为2,笔的颜色为黑色,并返回所写数据在Html页面中的唯一的名称
var  strSealName = document.all.DWebSignSeal.HandWrite (2,0, "zhangsan");


5:BSTR HandWritePop(longlPenWidth, long lPenColor, long lPageMode,long lWinWidth, long lWinHeight, BSTRstrSealName)       

功  能:
执行弹出手写窗口状态,此时用户可以在弹出的手写窗口上签署手写意见,保存后,手写印章数据会被作为签名来保存。此手写签名在本系统上与印章处于同种地位。
参数:
lPenWidth: 
签字默认笔粗细,1-16。(为0将会使用上次的设置)
lPenColor: 
RGB值,(为-1将会使用上次的设置),可以使用十进制或十六进制数表示,如:
0x0000FF 表示画笔为红色	
0x00FF00 表示画笔为绿色
0xFF0000 表示画笔为蓝色
0x000000 表示画笔为黑色
0xFFFFFF表示画笔为白色
lPageMode: 
保留参数。(指定缩放百分比,100为原始大小,为0将会使用上次的设置)
lWinWidth: 
弹出窗口的宽度,单位像素。(为0将会使用默认的设置)
lWinHeight: 
弹出窗口的高度,单位像素。(为0将会使用默认的设置)
strSealName: 
添加的手写签名的唯一名称,此参数非常重要,用户可以自己命名,但是同一个Html页面中,必须保证唯一。如果此参数为空,则系统会自动生成唯一的名称,并返回。
返回值:
运行成功返回此手写签名的名称,否则返回空。名称很重要,很多情况下需要设置名称,比如数据验证、签名验证… …
  说  明:
调用该接口前可以先执行SetSignData方法设置签名绑定数据或者绑定具体的域。运行该接口后,您可以在弹出的手写窗口上签署手写意见,签批保存后重新显示页面时,再调用ShowWebSeals来显示数据,您可以移动签批到合适的位置,然后设置位置锁定,这样手写签批的位置就固定了。

示  例:
//默认笔宽为2,笔的颜色为红色,并返回所写数据在Html页面中的唯一的名称
 var  strSealName = document.all.DWebSignSealPop.HandWrite (2,255,300,400, "");
//默认笔宽为2,笔的颜色为黑色,并返回所写数据在Html页面中的唯一的名称
var strSealName = document.all.DWebSignSeal.HandWritePop (2,0,200,300, "zhangsan");

 

6:long ShowWebSeals()

功  能:重建页面时,调用SetStoreData后系统并不会立刻显示印章或者签名数据,需要再调用ShowWebSeals来显示印章或者签名的信息。
   参数:无
  返回值: 0: 正确;非零失败。
 说  明:无



7:long SetSealSignData(BSTRstrSealName, BSTR strSignData) 

功  能:设置印章或者签名绑定的数据
   参数:
     strSealName: 印章的名称,即AddSeal、HandWrite、HandWritePop的返回值,不能为空。
     strSignData: 需要绑定的数据,用户可以自己组合。(不支持设置域名称列表)
     返回值:0: 正确;非零失败。 
    说  明:无


8:long LockSeal(BSTRstrSealName, long lLocked)

功  能:锁定印章所关联的域。
   参  数:strSealName: 印章的名称,即AddSeal、HandWrite、HandWritePop的返回值,如果此参数为空,则锁定整个文档。
          lLocked: 锁定或者解锁,0为解锁;1为锁定。
  返回值:0: 正确;非零失败。 
  示  例:
 //锁定文档
 var  strSealName = document.all.DWebSignSealPop.LockSeal("",1);






  相关解决方案