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