用 HTML 和 JavaScript 实现手写签名的简易方法
前言
今天遇到的场景是这样的:在日常业务流程中,经常需要某一流程环节中相关责任人员进行审批签字,早期许多公司为了省事就直接会把这位负责人的签名以键盘打字(楷体)的形式打印出来,但是这样的坏处就是会导致所有的负责人的签名都是一样的,没有美感,为了解决这个问题,一些公司就开始使用手写签名(用鼠标或者是电子笔写出来的签名)代替电子签名,今天本葡萄就为大家简单的介绍下手写签名到底是怎么实现的。话不多说,先上效果图:
看完效果图之后,下面为大家介绍实现的详细过程。
使用Html+JavsScript实现手写签名的添加
1.实现Html界面
<!doctype html>
<html>
<head>
<title>SpreadJS in TypeScript</title>
<!--引入在线Excel资源-->
<link rel="stylesheet" type="text/css" href="node_modules/@grapecity/spread-sheets/styles/gc.spread.sheets.excel2013white.css">
<link rel="stylesheet" type="text/css" href="node_modules/@grapecity/spread-sheets-designer/styles/gc.spread.sheets.designer.min.css">
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.0/jquery.min.js" integrity="sha512-3gJwYpMe3QewGELv8k/BX9vcqhryRdzRMxVfq6ngyWXwo03GFEzjsUm8Q7RZcHPHksttq7/GFoxjCVUjkjvPdw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jSignature/2.1.3/jSignature.min.js" integrity="sha512-lZ7GJNAmaXw7L4bCR5ZgLFu12zSkuxHZGPJdIoAqP6lG+4eoSvwbmKvkyfauz8QyyzHGUGVHyoq/W+3gFHCLjA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="systemjs.config.js"></script>
<script>
System.import('./src/app');
</script>
</head>
<!--添加清空和确认功能-->
<body>
<div id="signArea" style="position: absolute;top:100px;left:200px;visibility:hidden;z-index:100">
<div id="sign" style="height:300px;width:600px;border:1px dashed \#ddd;margin-bottom:10px"></div>
<div>
<button id="clear">清空</button>
<button id="confirm">确认</button>
</div>
</div>
<div id="designer-container" style="width:100%;height:90vh;border:1px solid darkgray"></div>
</body>
</html>
首先引入需要的在线Excel资源包,然后添加增加清空和确认手写签名两个按钮。
2.手写签名的JavsScript实现方法
(1) 添加手写签名:
let config = JSON.parse(JSON.stringify(GC.Spread.Sheets.Designer.DefaultConfig))
let customeAddSign = {
"text":"添加手写签名",
commandName:"customeAddSign",
execute:() =\> {
if(document.getElementById("signArea")){
document.getElementById("signArea").style.visibility = 'visible'
}
}
}
(2) 追加右键自定义菜单:
核心代码:
// 追加自定义右键菜单
config.contextMenu.push("customeAddSign")
config.commandMap = {
customeAddSign
}
let designer = new GC.Spread.Sheets.Designer.Designer("designer-container",config)
let spread = designer.getWorkbook()
$("#sign").jSignature({lineWidth:'16',width:'100%',height:'100%'})
document.getElementById("clear").onclick = function(){
$("#sign").jSignature("reset")
}
document.getElementById("confirm").onclick = function(){
let datapair = "data:" + $("#sign").jSignature("getData")
let sheet = spread.getActiveSheet()
let row = sheet.getActiveRowIndex()
let col = sheet.getActiveColumnIndex()
let picture = sheet.shapes.addPictureShape(`${sheet.name()}-${row}-${col}}`, datapair,0,0,100,100);
picture.startRow(row)
picture.endRow(row + 1)
picture.startColumn(col)
picture.endColumn(col + 1)
picture.startRowOffset(0);
picture.startColumnOffset(0);
picture.endRowOffset(0);
picture.endColumnOffset(0);
picture.allowResize(false)
picture.allowMove(false)
picture.allowRotate(false)
$("#sign").jSignature("reset")
document.getElementById("signArea").style.visibility = 'hidden'
}
这一步的作用是实现在Excel单元格中添加手写签名的功能,右键菜单选择手写签名后会调用对应的签名插件,在签名插件上可以用鼠标进行输入,输入完之后点击确认就会显示在单元格中。
完整代码和在线Demo地址:
相信看到这里,很多小伙伴已经想操作一下了吧,本葡萄也为大家准备了一个自由发挥的平台,点击下方链接便可以跳转到对应的Demo在线地址:
扩展链接:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
50年后,Vint Cerf和Bob Kahn回忆TCP/IP的诞生
Kahn 拥有通信视角,Cerf 拥有计算视角,他们共同致力于连接不同的计算网络——最多 256 个。 译自50 Years Later, Vint Cerf and Bob Kahn Remember the Birth of TCP/IP,作者 David Cassel。 Vint Cerf与 85 岁的 Bob Kahn 一起,在他们 50 多年前首次编写 TCP/IP 协议的房间里进行了一次特别演讲。 “能够在这里庆祝我和 Bob Kahn 开始的这项工作的 50 周年,以及如此多的人为此做出的贡献,这真是令人激动,”Cerf 在为期一周的庆祝演讲中说道。 他还对这个哲学性的旁白赢得了一些热烈的掌声。“能够庆祝 50 周年纪念日,重要的是你仍然_在_这里庆祝它!” Cerf 现在是谷歌副总裁以及他们的首席互联网布道者。Kahn 现在是非营利性国家研究倡议公司(促进国家信息基础设施的研发)的主席兼首席执行官。但Kahn 使用他帮助编写了底层协议的互联网连接,通过虚拟方式与 Cerf 一起出现——在事件发生的地方等待——以便他们一起讲述互联网诞生的故事。 以及一些帮助他们创造了这个...
-
下一篇
鸿蒙先锋共筑星河丨“一切都是为了好玩儿!”中学老师点燃学生兴趣的火炬
“一切都是为了好玩儿!”这句来自Linux之父、世界最著名程序员Linus Torvalds的自传《Just for Fun》中的名言。在沈阳市第五中学的课堂上,杨兴学老师在讲解HarmonyOS创意编程课时常常引用这句话,激励着学生们在编程学习中寻找乐趣,培养创新思维。 与鸿蒙生态携手走过的三年里,热爱探索的杨兴学不仅自编自学编程,创建了中学课程及教材《HarmonyOS创意编程》,点燃600多名学生兴趣的火炬,还上架了"kjwz智慧云"元服务,帮助学生进行选科选课、成绩分析和高考志愿填报。目前,杨兴学依旧在和热爱探索HarmonyOS的同学一起学习,共同收获开发学习经验和乐趣,投入到“Just for Fun”之中。 如今,杨兴学在HarmonyOS布道路上的辛勤耕耘也获得了极大认可,在HDC 2024鸿蒙先锋颁奖典礼上,他获得了由余承东亲自颁发的鸿蒙先锋奖章——优秀鸿蒙人才培育奖。这种先锋精神,激励更多人勇攀高峰,走向与HarmonyOS共创的美好未来。 点燃兴趣的火炬,“寓教于乐”的科技教学之路 杨兴学老师不仅学识渊博,妙笔生花诗词歌赋信手拈来,对科技更加痴迷,带领学生屡次收获...
相关文章
文章评论
共有0条评论来说两句吧...