分页: 1 / 1

教你快速开发websign

帖子发表于 : 2013年 8月 7日 15:03 星期三
星期三
我来给大家简单介绍一下WebSign的开发流程。
一、先来说一下websign的基本原理。
WebSign网页盖章以表单域为原始数据,然后使用数字签名技术对原始数据数字签名(盖章或签名).可以设置绑定多个表单域。
而Websign.dll为网页签章的基础控件,通过object加载dll到页面中,使用javascript调用接口实现网页签章。
二、现在进入正题,介绍一下websign的开发流程。
1.首先加载对象。页面通过object对象加载dll到页面,实现控件的装载和自动下载。Object对象直接加到页面的<body>之后即可。
代码: 全选
<OBJECT id=’DWebSignSeal’ classid=’CLSID:77709A87-71F9-41AE-904F-886976F99E3E’ style=’position:absolute;width:0px;height:0px;left:0px;top:0px;’  codebase=’./Websign.dll#version=4.1.0.0’></OBJECT>

参数说明:
    Id 控件的标示,通过标示调用控件的方法、属性,标示必须为”DWebSignSeal”
    codebase 设置控件自动下载的路径,用户如果没有安装控件,系统会自动访问codebase的路径下载控件;”#version=”后的是控件的版本,如果用户当前的软件版本低于”#version=”后面的版本,系统也会自动下载最新的控件。
2.加载完对象,在盖章或手写之前,我们必须通过接口指定此次签章的位置和印章要绑定的数据。由此,我们就要调用一些接口了。
绑定位置:SetPosition(long lPosX, long lPosY, BSTR strTagName)。这里的strTagName为html元素中的id,例如div,td,h1,span,li等,坐标是以id元素的左上角为(0,0)的相对位置。
绑定数据:SetSignData(BSTR strSignData),参数为要绑定的数据类型,可以是编辑区的id自动获取,也可以直接输入保护的字符串;。
3.接着,我们就可以盖章、手写了。下面介绍要用到的几个重要接口。
AddSeal(BSTR strSealPath, BSTR strSealName),手动盖章时,第一个参数为空即可。
HandWrite(long lPenWidth, long lPenColor, BSTR strSealName),全屏手写。
HandWritePop(long lPenWidth, long lPenColor, long lPageMode,long lWinWidth, long lWinHeight, BSTR strSealName),弹出框手写。
以上接口的返回值为印章的唯一名称,即strSealName
4.盖完章,您还可以改变签章的位置,可以手动盖章,也可以使用到MoveSealPosition(BSTR strSealName,long lPosX, long lPosY, BSTR strTagName)这个接口了。确定印章位置后,就可以锁定了,LockSealPosition(BSTR strSealName)这个接口可以帮您轻松搞定,参数为空的话就表示印章全部被锁定喽。
5.盖完章、签完字,我们就要保存一下这些数据,方便以后其他人打开时查看签字信息,接口为GetStoreData(),获取当前页面全部的签章数据,返回一个base64的字符串。如果您想独立保存每个签章的数据,可以使用GetStoreDataEx([in] BSTR strSealName)这个接口。
在此,要注意了,websign网页签章不具有操作数据库的功能,提交签章数据需要通过html的form表单元素提交,您就要根据实际数据库的情况,增加字段或关联表,将返回的base64字符串保存到数据库中。
6.要浏览盖章的页面,就要用到SetStoreData(BSTR StoreData)这个接口加载数据,如果有多个签章数据,多次调用SetStoreData,最后使用ShowWebSeals()这个接口显示印章。其中加载数据接口的参数为GetStoreDataGetStoreDataEx的返回值。
以上,我们就完成了在网页上简单的盖章、保存、浏览,如果您想实现其他的功能(例如:遍历印章、获取或修改印章大小、隐藏或显示),您可以访问http://42.96.151.67:82/index.php?title=WebSign这个网址里的接口文档,里边都有相关接口的详细介绍哦。