IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> php+uniapp(微信小程序版)实现电子签名及合同生成 -> 正文阅读

[PHP知识库]php+uniapp(微信小程序版)实现电子签名及合同生成

想实现在线电子签名,及生成签名到合同文件
第一部分: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知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-09-29 10:00:59  更:2021-09-29 10:01:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 3:48:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计