二、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);