我找到了解决方案。希望这可以帮助别人:
1) 在开始开发使用 WACOM 平板电脑的东西之前,请考虑签名捕获过程可能需要很长时间(根据我的经验,在表格上将签名数字化甚至需要 40 秒);
2) WACOM 提供的代码可以工作(至少 c# 示例和 HTML 可以),只是花了很多时间;
3) 如果您要开发一个 webform 解决方案,HTML 代码示例就是您所需要的,再加上一点 JS 和一些 C# 或 VB 编码;
4)在 Windows 8.1 64 位系统下(我仍然必须检查 Win 7)第二次放置签名时,WACOM 平板电脑很有可能不会在您绘制签名时“显示”签名......如果你在盲签名后按确定,无论如何都会将“签名”发送给客户。恢复系统的唯一方法是拔下 USB 端口并将其重新插入;
在网络表单中,您必须安排类似的内容:
HTML:
<link rel="stylesheet" type="text/css" href="Signature.css" />
<script type="text/javascript" src="BigInt.js"></script>
<script type="text/javascript" src="sjcl.js"></script>
<script type="text/javascript" src="Signature_encryption.js"></script>
<script type="text/javascript" src="Signature.js"></script>
<script type="text/javascript">
var _signatureForm = null;
function initDemo() {
if (_signatureForm == null)
{
var _signatureImage = document.getElementById("signatureImage");
_signatureForm = new SignatureForm(_signatureImage);
}
_signatureForm.connect();
return false;
}
function signForm() {
var _signatureImage = document.getElementById("signatureImage");
var _hdnSignature = $("input[id$='_hdnSignature']");
_hdnSignature.value = _signatureImage.src;
return true;
}
</script>
<form id="_frmMain" runat="server">
<div>
<div id="signatureDiv">
Signature image:<br />
<img id="signatureImage" />
</div>
<div>
Actions:<br />
<asp:Button ID="signButton" runat="server" Text="Capture" OnClientClick="javascript: return initDemo();" />
<asp:Button ID="_btnSign" runat="server" Text="Sign" OnClientClick="javascript: return signForm();" OnClick="_btnSign_Click" />
<asp:HiddenField ID="_hdnSignature" runat="server" />
</div>
</div>
<object id="wgssSTU" type="application/x-wgssSTU" ></object>
</form>
本示例中引用的所有 .js 文件都是 Wacom SDK HTML 示例中提供的文件。
脏活由 signForm() 函数完成,该函数获取图像并将其插入隐藏字段,从而允许代码隐藏过程处理签名。
部分后面的代码(在我的例子中是 C#)非常简单。只需处理按钮事件并解码图像:
protected void _btnSign_Click(object sender, EventArgs e)
{
string _sImage = _hdnSignature.Value.Replace("data:image/jpeg;base64,", "");
byte[] _rgbBytes = Convert.FromBase64String(_sImage);
string _sImageFile = Guid.NewGuid().ToString().Replace("-", string.Empty);
_sImageFile += ".jpg";
using (FileStream imageFile = new FileStream(Server.MapPath("~/" + _sImageFile), FileMode.Create))
{
imageFile.Write(_rgbBytes, 0, _rgbBytes.Length);
imageFile.Flush();
}
}
请考虑到 WACOM 平板电脑没有在图像文件中嵌入 METADATA,那么在您的代码中这样做应该是一个好主意。
最好的问候,迈克