小程序实现表单内签名效果

1.效果图:

签名效果图

2.签名页

2.1 html

<view class="cont cont02" hidden="{
   {istanc}}">
        <view class="weui-cells__title">签名区</view>
        <view class="weui-cells weui-cells_radio" style="padding:0 20rpx;text-align: center;">
            <template is="handwriting"></template>
            <view style="text-align: right;">
                <button catchtap="retDraw" class="btn07" style="display: inline-block;width: 200rpx;">清除签名</button>
            </view>
        </view>
    </view>

2.2. js

import Handwriting from "../../component/handwriting/handwriting";

onLoad: function (options) {
   
    const that = this
	// 初始化签名区
    this.handwriting = new Handwriting(that, {
   
        lineColor: that.data.lineColor,
        slideValue: that.data.slideValue, // 0, 25, 50, 75, 100
    })
}
//提交表单
dosumbit(){
   
	// 判断签名是否为空
    if (this.handwriting.chirography.length === 0) {
   
        wx.showToast({
   
            title: '签名内容不能为空',
            icon: 'none'
        })
        return;
    }

    //生成签名图片
    wx.canvasToTempFilePath({
   
        canvasId: 'handWriting',
        fileType: 'png',
        success: function (res) {
   
            console.log(res.tempFilePath)
            
            // 小程序读取文件管理器 api 将签名图片生成base64格式
            wx.getFileSystemManager().readFile({
   
                filePath: res.tempFilePath, //选择图片返回的相对路径
                encoding: 'base64', //编码格式
                success: res => {
    //成功的回调
                    var base64 = 'data:image/png;base64,' + res.data
                    console.log(base64)
                },
                fail: function (res) {
   
                    //生成失败
                }
            })
        },
        fail: function (res) {
   
            wx.showToast({
   
                title: '获取签名服务异常,请重试',
                icon: 'none'
            })
        }
    })
}

3. handwrting组件

3.1 html

<template name="handwriting">
  <view class="handCenter">
    <canvas class="handWriting" disable-scroll="true" bindtouchstart="uploadScaleStart" bindtouchmove="uploadScaleMove" bindtouchend="uploadScaleEnd" bindtap="mouseDown" canvas-id="handWriting"></canvas>
  </view>
</template>

3.2 js

class Handwriting {
   
  // 内置数据
  canvasName = 'handWriting';
  ctx = '';
  canvasWidth = 300;
  canvasHeight = 900;
  linePrack = []; //划线轨迹 ; 生成线条的实际点
  currentLine = [];
  transparent = 1; // 透明度
  pressure = 0.5; // 默认压力
  smoothness = 100; //顺滑度,用60的距离来计算速度
  lineSize = 1.5; // 笔记倍数
  lineMin = 0.5; // 最小笔画半径
  lineMax = 2; // 最大笔画半径
  currentPoint = {
   };
  firstTouch = true; // 第一次触发
  radius = 1; //画圆的半径
  cutArea = {
   
    top: 0,
    right: 0,
    bottom: 0,
    left: 0
  }; //裁剪区域
  lastPoint = 0;
  chirography = []; //笔迹
  startY = 0;
  deltaY = 0;
  startValue = 0;
  constructor(pageContext, opts) {
   
    this.page = pageContext
    this.lineColor = opts.lineColor || '#1A1A1A' // 颜色
    this.slideValue = opts.slideValue || 50

    this.init()

    this.page.uploadScaleStart = this.uploadScaleStart.bind(this); // 笔迹开始
    this.page.uploadScaleMove = this.uploadScaleMove.bind(this); // 笔迹移动
    this.page.uploadScaleEnd = this.uploadScaleEnd.bind(this); // 笔迹结束
  }
  init() {
   
    this.ctx = wx.createCanvasContext(this.canvasName)
    var query = wx.createSelectorQuery();
    query.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: TCPDF是一个开源的PHP类库,可用于创建PDF文档。在TCPDF中实现电子签名需要使用第三方工具和一些额外的代码。在本次主题中,我们将关注通过TCPDF实现PDF电子签名的过程。 首先,我们需要一个可识别签名的数字证书。该证书可以通过加密机构获得。接下来,我们需要创建一个私钥和一个公钥,这两个秘钥将用于PDF中的数字签名。我们可以使用OpenSSL库实现此步骤。在创建私钥和公钥之后,我们需要将公钥上传到加密机构,以便其他人验证签名。 接下来,我们需要使用PHP扩展一次性代码实现签名添加到PDF中。此代码应在签名时执行。代码应根据使用的加密机构以及证书文件的位置进行配置。使用PHP扩展的好处是确保签名代码不会被泄露。在签名后,我们需要将PDF保存到服务器中。 最后,我们需要实现PDF查看程序,以使用户能够轻松查看签名。这可以通过创建一个连接到保存的PDF文件的HTML页面来完成。当页面加载时,我们将使用TCPDF中的“SetSignatureAppearance”方法,该方法将设置电子签名的外观。 在总体上,通过TCPDF实现PDF电子签名需要一些额外的代码和配置。但是,一旦实现,它可以提供安全、可靠的电子签名服务。 ### 回答2: 随着电子化的普及,越来越多的文件需要进行电子签名,以保证其真实性和可靠性。PDF格式的文件也是电子签名的重要形式之一。CSDN中有一篇介绍使用TCPDF实现PDF电子签名的文章,我们来看一下具体内容。 TCPDF是一款PHP生成PDF文件的开源库。它支持UTF-8、Unicode、RTL语言和CJK中文编码,提供了丰富的字体支持,且可以实现各种各样的PDF文档构建和创建。在实现PDF电子签名的过程中,我们可以利用TCPDF库来生成PDF文档,并在生成的PDF文件中嵌入电子签名,从而达到签名效果。 具体实现流程如下: 1. 创建PDF文件,可以使用TCPDF库的基本功能进行自定义设置。 2. 创建签名区域,通常在PDF文件底部设置一个专门的签名区域或者在需要签名的位置插入一个图像。 3. 收集签名数据,可以使用单或者JavaScript等方式,让用户输入签名信息。 4. 保存签名数据到PDF文件中,并利用TCPDF库的相关函数实现在PDF文件中嵌入签名。 5. 保存签名后的PDF文档,以保证签名的可靠性和持久性。 以上是使用TCPDF实现PDF电子签名的主要流程,实际操作中也可以根据需求进行自定义设置和修改。需要注意的是,在实现电子签名过程中,安全性是非常重要的考虑因素,一定要确保签名数据的真实、准确和保密性。 总之,使用TCPDF实现PDF电子签名是一种方便、快捷、安全的方式,适用于各种电子文档签名需求。通过上述步骤,我们可以轻松地实现PDF电子签名。 ### 回答3: CSDN TCPDF是一种非常流行的PHP开源库,它可以实现高质量的PDF文档生成,并且支持电子签名。通过TCPDF,我们可以轻松地实现电子签名功能来保护文档的真实性和完整性,从而确保文档的安全性。 实现PDF电子签名的过程一般有以下几个步骤: 第一步,我们需要使用TCPDF库创建一个空的PDF文档,因为电子签名必须放在PDF文档内部。然后,我们需要定义签名区域的位置和大小,并在此处插入签名占位符。 第二步,我们需要生成证书,证书包含签名者的基本信息和公钥。使用证书可以确保签名的安全性和可信度。 第三步,签名人需要签署PDF文档并将签名达式存储在证书中。签名达式是一个包含签名者信息和时间戳的哈希值。 第四步,我们需要对文档进行加密和摘要操作,以确保文档的完整性和安全性。这一步通常会使用sha256哈希算法进行计算和验证。 最后,我们需要将签名过程和结果保存为PDF文档,并提供验证机制来验证文档的真实性和完整性。 总之,使用CSDN TCPDF可以轻松实现PDF电子签名,它可以提高文档的安全性和可信度。但是,在使用电子签名时,需要注意保护私钥和证书,否则签名可能会被盗用或篡改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值