小程序云开发中如何生成pdf?
实践证明用方案1才是好的我要生成的pdf有点复杂,使用方案2太卡了。云函数受不了。体验很差。
// 云函数 图片 转 pdf
const cloud = require('wx-server-sdk');
const { PDFDocument, StandardFonts, rgb } = require('pdf-lib');cloud.init();// 云函数入口函数
exports.main = async (event, context) => {let width = event.width;let height = event.height;let srcFileID =event.srcFileID;const doc = await PDFDocument.create();let page = doc.addPage();page.setWidth(width);page.setHeight(height);//图片
const lenderSignSign = await cloud.downloadFile({fileID:srcFileID
});
let img = await doc.embedPng(lenderSignSign.fileContent);
page.drawImage(img,{x: 0,y: 0,width:width,height:height
});const docBase64 = await doc.saveAsBase64()const docBuffer = Buffer.from(docBase64, 'base64');let fileName = 'tmp/' + parseInt(new Date().getTime() / 1000) + '.pdf';let result = await cloud.uploadFile({ cloudPath: fileName, fileContent: docBuffer });let fileID = result.fileID;//转http访问const fileList = await cloud.getTempFileURL({fileList: [fileID],});let pdf = fileList.fileList[0].tempFileURL;return { code: 1, msg: '', data: { fileID: fileID, pdf: pdf } }}
pdf-lib介绍
参考
参考2
方案1
canvas先生成图片。云函数中再转成pdf
,使用pdf-lib 转成pdf
方案2
使用 pdf-lib 库生成。
1.新建云函数 testPdf 并安装 pdf-lib
npm install --save pdf-lib
2.testPdf内容
// 云函数入口文件
const cloud = require('wx-server-sdk')
const { PDFDocument, StandardFonts, rgb } = require('pdf-lib');
//const fontkit = require('@pdf-lib/fontkit’');cloud.init();// 云函数入口函数
exports.main = async (event, context) => {const doc = await PDFDocument.create();let page = doc.addPage();page.setWidth(800)page.setHeight(500)let helloWorld ='helloWorld';page.drawText(helloWorld,{x: 10,y: 450,size: 20,lineHeight: 20,},)const docBase64 = await doc.saveAsBase64()const docBuffer = Buffer.from(docBase64,'base64');let fileName = 'tmp/' + parseInt(new Date().getTime() / 1000) + '.pdf';//返回 fileID,https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/storage/uploadFile/server.uploadFile.html//如果需要https访问地址。可使用getTempFileURL方法转 return await cloud.uploadFile({ cloudPath: fileName, fileContent: docBuffer });}
小程序云开发中如何生成pdf?相关推荐
- 五十、微信小程序云开发中的云数据库
@Author:Runsen 今天是2020年7月24日.不学习,不复习,那根一条咸鱼差不多. 今天继续学习复习微信小程序中的云开发. 文章目录 云开发 云数据库 云开发 开发者可以使用云开发开发微信 ...
- 大小端交换的程序_数据库在小程序云开发中的应用
" 高效率数据库为小程序·云开发赋能,共同为客户提供更多优质解决方案. " 目录 小程序·云开发介绍小程序·云开发的数据库服务解决方案及客户成功案例 小程序云开发介绍 " ...
- 小程序云开发中的一些注意点与Error: errCode: -404011 cloud function execution error | errMsg: clou----错误
小程序云开发注意点 1兼容性问题, 1.1版本在2.2.3以上 1.2或在app.json/game.json中增加"cloud":true 云开发初始化: app.js中 wx. ...
- 微信小程序云开发,快速生成短信验证码
使用微信小程序云函数实现注册短信验证码的管理,并不是一件分分钟的事,目前想要存储验证码只能放到数据库中,因为存储后才能和用户提交上来的验证码做比较. 管理验证码主要涉及到:生成.存储.校验.有效期管理 ...
- 五十一、微信小程序云开发中的云函数
@Author:Runsen 暑假很长,明年就是找工作的时候了.这个时候必须比之前还要拼命. 百无聊赖,看过文档才发现,微信小程序已将云函数,对象存储和云数据库这些都搬了进来,由于前几天刚刚看过这些方 ...
- 五十二、微信小程序云开发中的云存储
@Author:Runsen 暑假很长,明年就是找工作的时候了.这个时候必须比之前还要拼命. 百翻无下,努力就是我的代言词.今天,正式进入云存储的学习.云存储这个概念在之前学习的时候没有注意到. 下面 ...
- 从小程序到小程序云开发
点击观看大咖分享 小程序云开发为微信小程序开发者提供云到端的一站式解决方案,帮助开发者统一构建和管理资源,能有效降低技术门槛.减少研发成本.提升开发效率,协助开发者快速搭建稳定高质量的微信小程序应用. ...
- 小程序云开发实现微信支付,不需要搭建服务器
一.开发微信支付功能一定要架设服务器吗? 2019年的最后一天,舍得叔叔沉浸在探索的兴奋中,验证了微信小程序云开发也能优雅实现微信支付!小程序的目标是建立一个"serverless" ...
- 腾讯在线教育的小程序云开发实践
作者简介: 陈天忱,IMWEB团队成员,腾讯前端开发工程师, 主要负责腾讯课堂小程序,腾讯课堂直播间等业务模块. 首先介绍下腾讯在线教育下的3个主要业务: ● 针对成人职业化,兴趣化学习的腾讯课堂: ...
最新文章
- 安装了mysql5.7后,如何进行配置(密码等)初始化
- log4j 配置,tomcat 启动或有后台操作时,控制台会显示很多 DEBUG 信息
- 新手入门深度学习 | 第六篇:TensorFlow2 回调极速入门
- java.lang.NumberFormatException 错误及解决办法
- VIJOS1212 Way Selection
- 一步步编写操作系统 69 汇编语言和c语言共同协作 70
- linux权限案例,Linux下的权限体系
- 树莓派与node.js —— onoff、dht
- 《How to Reshape Input Data for Long Short-Term Memory Networks in Keras》学习笔记
- Hive怎样加入第三方JAR
- Pop3_解决PKIX:unable to find valid certification path to requested target 的问题
- D1、D系列分辨率是多少
- 半导体器件基础与二极管电路
- wireshark读写pcap文件_pcap文件格式和wireshark解析
- 知识计算机硬件 教学设计,计算机硬件教案
- [生存志] 第15节 历代大事件概览 东汉
- Java如何在main方法中实例化内部类对象
- Kubernetes 1.14:Windows节点的生产级支持、Kubectl更新、持久本地卷GA
- 新概念2 课文和单词(2)
- 《Lucid Data Dreaming for Video Object Segmentation》论文笔记
热门文章
- deepin自带wine使用方法_图解deepin操作系统安装,体验定制版的国产操作系统
- 下载岳阳歪胡子_最新版岳阳皮皮歪胡子_最新版岳阳皮皮歪胡子
- 【Brian2学习教程之二】Introduction to Brian part 2: Synapses
- python 广告联盟_创建百度联盟广告代码位第一天盈利5毛 - 里维斯社
- windows 系统端口不通,改不了IP(麦咖啡mac)
- matlab五维插值,光学加工过程中高次非球面的三坐标测量数据处理
- 轻量级Kubernetes之k3s:7:集群一键部署脚本
- 谷歌浏览器无法翻译问题
- python爬取问卷星内容_python问卷星爬虫bug求助
- 计算机领域常用的英文名称和缩写,计算机中常用的英文缩写有哪些