想实现在线电子签名,及生成签名到合同文件
第一部分:uniapp小程序端
1.从插件市场导入手写签名canvas电子签名,按照操作步骤即可使用。我这里是调整了样式,修改了组件,根据自己实际UI调整

我的UI效果图:

2.通过组件的submit方法可以得到签名后的图片临时文件,将图片上传到后台得到服务器图片地址,保存下来

sumbit(res){console.log('sumbit',res)var _this = this;try {// this.resultUrl = res.tempFilePath//将签名上传后台uni.uploadFile({url: web.webUrl+'/api/common/upload', //仅为示例,非真实的接口地址filePath: res.tempFilePath,name: 'file',formData: {// 'user': 'test'},success: (uploadFileRes) => {console.log(uploadFileRes.data);// 判断是否json字符串,将其转为json格式let data = _this.$u.test.jsonString(uploadFileRes.data) ? JSON.parse(uploadFileRes.data) : uploadFileRes.data;console.log(data);_this.resultUrl = data.data.url;console.log(_this.resultUrl);_this.confirm()// _this.resultUrl = res.tempFilePath;}})} catch (e) {// error}
},

第二部分:php接口部分
图片上传接口就不写了,直接写合同生成,使用的是PHPWord

1.composer安装PHPWord PHPWord composer链接

composer require phpoffice/phpword

2.准备合同模板文件,既然是PHPWord,那肯定是word文档,将文档里面的需要替换的文字设置为变量,变量的格式例如:${user_name},那么模板变量替换的时候使用 $templateProcessor->setValue(‘user_name’, ‘张三’); 图片也是一样的操作,在文件里面设置好模板变量,然后替换

PHPWord文档中有给出使用方法

3.生成合同文件

//生成合同文件,参数是签名图片的路径
public static function generate_contract($sign_img_url)
{//获取后台配置的模板文件$contract = explode(',',getConfigvalue('register_file'));$contract_list = array();$file_path = ROOT_PATH.'public/contract/';if(!is_dir($file_path)){mkdir($file_path,0777,true);}foreach ($contract as $key=>$value) {//读取模板文件$templateProcessor = new TemplateProcessor(ROOT_PATH.'public'.$value);//模板变量替换$templateProcessor->setValue('user_name', '张三'); //模板变量值替换$templateProcessor->setValue('user_mobile', '13112345678'); //变量值替换$templateProcessor->setImageValue('sign_image', ['path' => ROOT_PATH.'public'.$sign_img_url, 'width' => 40, 'height' => 40, 'ratio' => true]); //写入图片//输出文件$out_docx_name = $file_path.time().$key.'.docx';$templateProcessor->saveAs($out_docx_name);$contract_list[] = $out_docx_name;}return $contract_list;
}

4.得到文件,out_docx_name就是文件路径,将路径保存

php+uniapp(微信小程序版)实现电子签名及合同生成相关推荐

  1. 宝藏级UI组件库:FirstUI,微信小程序版+uniapp版双版至V1.5.0,完美支持vue3

    First UI(https://www.firstui.cn/)是一套超高性能.超高颜值的移动端UI综合解决方案,包含业内顶尖的组件库.强大的功能库.丰富精美的模板库,提供uni-app(完美支持n ...

  2. uni-app 微信小程序 用高德sdk获取地理位置,以及天气信息

    uni-app 微信小程序采用高德sdk获取地理位置和天气信息主要有以下几个步骤: 1. 注册高德开发者,并获取应用key 概述-微信小程序插件 | 高德地图API 在这个网页最下面,按步骤来就可以了 ...

  3. vue uniapp 微信小程序 搜索下拉框 模糊搜索

    vue uniapp 微信小程序 搜索下拉框 模糊搜索 话不多说 直接贴代码 template <template><view class="index"> ...

  4. 用mpvue实现的微信小程序版cnode社区

    五一放假,没出去玩,想熟悉下vue的开发流程,又想体验下mpvue,于是写了个练手项目.一个用mpvue实现的cnode微信小程序版. 代码在仓库.欢迎各位star.fork.issue.pr.目前已 ...

  5. uni-app微信小程序登录授权

    uni-app微信小程序登录授权 首先是需要用到一个授权按钮来触发获取用户信息授权: 关键在于 open-type 为 getUserInfo , 然后有个@getuserinfo的事件,把获取授权接 ...

  6. 【大白话学习】UniApp 微信小程序与APP应用 开发零基础入门教程(一)---基础页面框架搭建

    写在前面话: 随着互联网的快速发展,微信小程序应用的快速便捷,不用下载安装等的优势越来越明显,于是,我就开始着手于小程序开发的学习,虽然微信提供了开发工具,但它只能生成小程序 ,不能生成APP,那么有 ...

  7. uniapp 微信小程序开发 图片上传压缩

    uniapp 微信小程序开发 图片上传压缩 安卓上传图片并压缩 思路 全部代码 安卓上传图片并压缩 由于后端接口对图片的大小有限制,所以在上传图片是需要压缩处理: uni.chooseImage({c ...

  8. uniapp微信小程序授权登录和获取微信绑定的手机号码

    uniapp微信小程序授权登录和获取微信绑定的手机号码 弹出授权的弹框 <view class="weixinOk" @tap="getUserProfile&qu ...

  9. uni-app 微信小程序实现全屏悬浮按钮可拖动,自动吸附边缘

    原文链接:uni-app 微信小程序实现全屏客服按钮可拖动,自动吸边-小月博客 效果图如下: html : <movable-area class="movableArea" ...

  10. uni-app 微信小程序分享按钮

    uni-app 微信小程序分享按钮 官方文档说明 在 manifest.json 的 App SDK 配置里,勾选微信消息及朋友圈,并填写相关 appkey,微信 appkey 在需要分享的页面填写: ...

最新文章

  1. NVME CLI -- nvme 命令查看NVME设备内部状态
  2. 缓存cache和缓冲区buffer
  3. webService上传图片
  4. 在ubuntu上安装Oracle Java SDK
  5. PAYPAL 支付,sandbox测试的时候遇到异常:请求被中止: 未能创建 SSL/TLS 安全通道,以及解决方法。
  6. [胡思乱想]网络游戏与社会资源公平分配
  7. redis源码剖析(2):基础数据结构ADLIST
  8. 540.有序数组中的单一元素(力扣leetcode) 博主可答疑该问题
  9. Java实现常用的三种加密算法详解
  10. python程序内存限制
  11. ubuntu下无线网卡解决经历
  12. 基于select2的二级联动
  13. python中图片绘制和输出相关库的原理详解
  14. [专业亲测]Ubuntu16.04安装Nvidia显卡驱动(cuda)--解决你的所有困惑
  15. C++:66---特殊工具与技术之(不可移植的特性:位域、volatile、extern “C“链接提示)
  16. 十行代码,我用Python做一个迷你版的美图秀秀!
  17. 统计图配色方案_填充
  18. ggplot2--geom_smooth和曲线拟合画图
  19. 用户故事与敏捷方法 - 第十章 迭代故事
  20. bem什么意思_BEM的定义

热门文章

  1. urlrewrite配置
  2. ad中装配图如何导出_AD的PDF文件如何进行输出,你都掌握了?
  3. 抖音内测语音直播交友 能够用声音打开社交的一扇门吗?
  4. python必背入门代码和入门基础知识,你知道吗
  5. python基础(一):入门必备知识
  6. mtk现在不支持语言的字库和输入法,支持的字库和输入法
  7. 会议会展活动管理软件可实现哪些功能
  8. 写一个用矩形法求定积分的通用函数,分别求sinx,cosx,expx从0到1的定积分(指针方法处理)——C语言
  9. matlab回调函数,matlabGUI回调函数介绍.pptx
  10. 等级保护--云计算安全扩展要求