电子合同 数字签名项目记录

2023-11-02

项目页面

项目实现遇到的问题

在开发过程中遇到两个问题,

  1. 前台,后台的签字展示大小和签字图片和合同原件合并的字体生成大小
  2. 签字生成的图片大小,最小化,不能是canvas画布的大小

第一个问题

针对第一个问题,如果不解决这个问题,在签字页面展示的签字大小和服务端合并合同和签字后生成的图片中的签字大小会不一致,因为在pc端和在移动端都需要兼容,所以把签字生成的图片的高度和合同原件的宽度进行关联,所有的尺寸都是用了百分比。

合同原件实际展示的宽度 / 签字图片的高度  = 展示比例     (以移动端为主,签字图片的高度定义为26px,就可以得到展示的比例)
服务端通过移动端的比例计算出签字图片缩放的比例,进行合并
服务端生成缩略图需要给出签字图片实际的宽高,根据移动端给出的比例可以计算出
签字原图的宽度  /  签字原图的高度  =  缩略图的宽度 /  缩略图的高度
可以计算出缩略图的高度  =  合同原件的宽度/ 移动端给出的比例

这样服务端就可以生成和移动端签字展示一样的文件了
 

第二个问题

因为canvas  数字签名生成之后生成的图片尺寸和画布的大小是一样的。这样就会造成签字人的字签很多次以后才能签署到合适位置。如果签小了,字的周围留白就比较多,如果签满画布才能正好。

在这里,使用了Simplify.js 库。

Simplify.js 库可以对画布的线条进行跟踪计算,同时保持其形状,从而在处理线条时大大提高了性能,同时还减少了视觉噪声。在使用Canvas或SVG在浏览器中绘制点线图或地图路线时,这是必不可少的。
这样,两个问题解决完了

在这次的开发中也遇到一些其他的小问题,但是这两个问题是最核心的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

电子合同 数字签名项目记录 的相关文章

  • 微信登录总结公众号登录小程序登录企业微信登录

    微信公众号 服务号登录 微信内部网页授权 第一步 请求CODE https open weixin qq com connect oauth2 authorize appid APPID redirect uri REDIRECT URI
  • VC6.0打开文件以及向工程中添加文件时程序崩溃自动退出

    换了一台电脑 vc6 0程序中 点击打开文件以及向工程中添加文件时 程序竟然崩溃自动退出了 不知什么原因 安装相同的vc程序 本本竟然出现此缘故 但是这个操作又是自己经常用到的 所以不得不解决 与上一台电脑不同的是 此电脑是win7系统 而
  • 最小二乘拟合平面——拉格朗日乘子法

    目录 一 算法原理 二 代码实现 1 python 2 matlab 三 算法效果 一 算法原理 设拟合出的平面方程为 a x b
  • tinyhttp

    博客园 http www cnblogs com letlifestop Tinyhttpd 是J David Blackstone在1999年写的一个不到 500 行的超轻量型 Http Server 用来学习非常不错 可以帮助我们真正理
  • c++中和c语言不相同的地方

    c 糅合了c语言的语法 并且在c语言的基础上进行了改进 并且具有向下兼容的特性 但是c 改进了什么东西呢 今天就来学习一下吧 目录 命名空间 namespace cout与cin与endl 流插入符与流运算符 using namespace
  • [MySql]JDBC编程

    JDBC 即Java Database Connectivity java数据库连接 是一种用于执行SQL语句的Java API 它是Java中的数据库连接规范 这个API由 java sql javax sql 包中的一些类和接口组成 它
  • Vite unplugin-auto-import插件 自动引入组件

    文章目录 一 参考 二 快速入门 三 开发问题 3 1 解决eslint 报错的问题 3 2 解决 typescritp 报错的问题 unplugin auto import 自定义配置说明 一 参考 unplugin auto impor
  • QT textBrowser 设置每个字符串的颜色和大小

    QT textBrowser 设置每个字符串的颜色和大小 QT中textBrowser每行显示不同颜色 解决 Qt textBrowser 每行字体设置中的 n 缺失问题 原理 字体采用 html语言进行设置 方法 1 需要采用 appen
  • windows10 mvn安装后不是内部命令

    好气啊 maven 命令不识别 扒拉了半天 结果把全路径仍path一份就好使了 先记着吧
  • VS2010中C#调用C函数

    VS2010中C 调用C函数 2013 07 22 16 12 50 转载 分类 C Concept 1 创建C本地DLL文件 1 1 创建Win32Dll项目 1 2 创建DLL 点击完成 1 3 在 头文件 里新建文件 CPPLibra
  • 最小点覆盖问题详解

    那么一如既往 还是个人觉得学习某一个知识点之前先粗俗的了解其是个什么东东 然后再去了解概念比较好 那么下面结合题目来了解 首先最最重要的是理解题意 有k个任务 每个任务task i可以用机器A的x i模式做 也可以由机器B的y i模式做 值
  • 6款非常好用的设计软件盘点

    近年来 随着社会的发现 中国的设计行业也取得了快速的进步 人们对设计的要求越来越高 设计师也越来越多 设计成本也在上升 作为一名设计师 找到合适的设计软件尤为重要 以下是一些我认为有用的设计软件 供您参考 1 figma Figma是一个U
  • Linux网络莫名其妙ping不通外网

    做实验之前 网络设置一切正常 一开始能成功ping通外网 但是过一会儿就出问题 yum也用不了 查了所有的配置都没有任何问题 最后尝试了一下将原来的网段更换 将虚拟机里的虚拟网络编辑器NAT模式的子网IP更换一个网段 原来是158网段 现更
  • 利用Github快速搭建个人博客总结(亲测)

    近一年多时间一直都在用CSDN 讲真这个CSDN有时候资料很多 我也很自豪加入这个大家庭 不过身边有两个同学 一个在github托管了属于自己的博客 另一个在云上面编写了属于自己的博客 后者的理由是 CSDN太low 上面很多都是转发的文章
  • 机器学习—支持向量机理论详细推导(含例题讲解)(二)

    7 最大间隔算法 算法 输入 T x 1

随机推荐

  • 修改镜像配置后 启动docker失败

    背景 systemctl start docker失败 输出如下 systemctl restart docker Job for docker service failed because the control process exit
  • 机器学习中的类别不均衡问题

    基础概念 类别不均衡 指在分类算法中 不同样本类别的比例悬殊比较大 会对算法的学习过程造成重大干扰 比如 一个二分类的问题上 有1000个样本 其中5个正样本 995个负样本 在这种情况下 算法只需将所有的样本预测为负样本 那么它的精度也可
  • FTP协议详解

    一 FTP协议的概述 1 文件传送协议 File Transfer Protocol 是互联网上使用的最广泛的文件传输协议 用于Internet上的控制文件的双向传输 2 FTP提供交互式的访问 允许客户指明文件类型与格式 并允许文件具有存
  • Makefile(面试必备)

    1 Makefile基本介绍 1 1 makefile介绍 make是一个工程管理器 它可以根据文件时间自发检测更新的文件从而减少编译量 makefile文件和make工具一起使用 用于控制工程项目的编译和链接 也可以用来编写手册页和程序的
  • nginx部署vue项目并访问后端接口遇到 503 服务器不可用

    nginx部署vue项目并访问后端接口遇到Uncaught in promise Error Request failed with status code 503 今天在一台阿里云上部署了springboot后端 并测试通过 但是在部署v
  • pytorch版本官网命令

    COMMANDS FOR VERSIONS gt 1 0 0 v1 8 0 Conda OSX conda conda install pytorch 1 8 0 torchvision 0 9 0 torchaudio 0 8 0 c p
  • 多维时序

    多维时序 MATLAB实现GWO GRU灰狼算法优化门控循环单元的多变量时间序列预测 目录 多维时序 MATLAB实现GWO GRU灰狼算法优化门控循环单元的多变量时间序列预测 预测效果 基本介绍 程序设计 参考资料 预测效果 基本介绍 M
  • homestead实现外部局域网络其他主机的访问

    homestead 2 0 MAC环境 修改Homestead目录下的Vagrantfile文件 加上这么一行 config vm network public network ip 192 168 1 XXX IP地址为该局域网内其他未被
  • 手把手教你写购物车(完整篇1)

    购物车的设计与思路 1 在做任何业务的时候 首先要做的是把思路的流程捋清楚 再进行代码的编写 以及实现 2 对业务涉及到的技术 如果没接触过的 首先要学习至会用为止 3 如果思路不是很清楚的 可以查找类似的案列情况 学习思路流程 4 具体的
  • 攻克3D神器Blender的第五天-【多边形建形、旋转】

    目录 前言回顾 功能预览 多边形建形 旋转 前言回顾 不熟悉快捷键属性的可以点击传送门预览 传送门 官网地址 传送门 攻克3D神器Blender的第一天 快捷键 传送门 攻克3D神器Blender的第二天 挤出 传送门 攻克3D神器Blen
  • 笔记:《深入浅出统计学》第五章:概率分布(均值、方差、线性变换)

    随机变量的概率分布是描述随机变量取所有不同值的概率 对于随机变量x 概率函数给出随机变量取每一种值的概率 记f x 离散型概率函数的基本条件 1 对于任意随机变量的取值 函数值都是大于等于0 2 随机变量的所有取值对应的概率之和为1 常见的
  • 【C语言】符号常量(#define)

    举例 define XY RX 100 用法 define 标识符 常量 其中 标识符一般全大写 单词之间用 下划线分割
  • gin库的的理解以及简单使用

    gin库的作用 在实验当中 可能存在同一模型下使用不同的数据集参数进行训练时 就需要多次输入一些相同类型的参数 从而造成时间的浪费 gin库就是为了统一化操作这些参数而出现的 它允许函数或类被注释为 gin configurable 这样就
  • 微信小程序(typescript) npm添加Tdesign UI组件库

    最近 发现一个新的微信小程序UI组件库 TDesign 腾讯自家出品 颜值杠杆 网址如下 https tdesign tencent com miniprogram getting started 安装 使用NPM Node js 安装包及
  • Java使用Aspose-Words实现Word转换Pdf

    一 在项目中引入Aspose Words依赖 下载地址 http pan baidu com s 1nvbJwnv 建议将jar包下载下来并上传到自己公司的私服里去
  • 【 OJ 】 HDOJ1052 贪心模拟田忌赛马 [ 46 ]

    转自 https www cnblogs com Open Source archive 2010 07 09 1904940 html 解题思路 贪心算法 根本思想是要让田忌花最小的代价来胜一每一场 让齐王花最大的代价来胜每一场 代价 可
  • 怎样用matlab产生泊松分布随机数

    random Poisson Lambda random Poisson Lambda m n 泊松分布的参数为Lambda 如果只产生一个随机数就是第一句的样子第二行的语句表示会产生m n个随机数 且这些随机数组成了m行n列的矩阵matl
  • C++基础知识 - 类模板与友元函数

    类模板与友元函数 Demo h pragma once template
  • SSM框架整合&配置环境&简单测试

    项目结构目录 第一步 导入ssm框架所需坐标 比如spring springmvc mybatis
  • 电子合同 数字签名项目记录

    项目页面 项目实现遇到的问题 在开发过程中遇到两个问题 前台 后台的签字展示大小和签字图片和合同原件合并的字体生成大小 签字生成的图片大小 最小化 不能是canvas画布的大小 第一个问题 针对第一个问题 如果不解决这个问题 在签字页面展示