实践证明用方案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?相关推荐

  1. 五十、微信小程序云开发中的云数据库

    @Author:Runsen 今天是2020年7月24日.不学习,不复习,那根一条咸鱼差不多. 今天继续学习复习微信小程序中的云开发. 文章目录 云开发 云数据库 云开发 开发者可以使用云开发开发微信 ...

  2. 大小端交换的程序_数据库在小程序云开发中的应用

    " 高效率数据库为小程序·云开发赋能,共同为客户提供更多优质解决方案. " 目录 小程序·云开发介绍小程序·云开发的数据库服务解决方案及客户成功案例 小程序云开发介绍 " ...

  3. 小程序云开发中的一些注意点与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. ...

  4. 微信小程序云开发,快速生成短信验证码

    使用微信小程序云函数实现注册短信验证码的管理,并不是一件分分钟的事,目前想要存储验证码只能放到数据库中,因为存储后才能和用户提交上来的验证码做比较. 管理验证码主要涉及到:生成.存储.校验.有效期管理 ...

  5. 五十一、微信小程序云开发中的云函数

    @Author:Runsen 暑假很长,明年就是找工作的时候了.这个时候必须比之前还要拼命. 百无聊赖,看过文档才发现,微信小程序已将云函数,对象存储和云数据库这些都搬了进来,由于前几天刚刚看过这些方 ...

  6. 五十二、微信小程序云开发中的云存储

    @Author:Runsen 暑假很长,明年就是找工作的时候了.这个时候必须比之前还要拼命. 百翻无下,努力就是我的代言词.今天,正式进入云存储的学习.云存储这个概念在之前学习的时候没有注意到. 下面 ...

  7. 从小程序到小程序云开发

    点击观看大咖分享 小程序云开发为微信小程序开发者提供云到端的一站式解决方案,帮助开发者统一构建和管理资源,能有效降低技术门槛.减少研发成本.提升开发效率,协助开发者快速搭建稳定高质量的微信小程序应用. ...

  8. 小程序云开发实现微信支付,不需要搭建服务器

    一.开发微信支付功能一定要架设服务器吗? 2019年的最后一天,舍得叔叔沉浸在探索的兴奋中,验证了微信小程序云开发也能优雅实现微信支付!小程序的目标是建立一个"serverless" ...

  9. 腾讯在线教育的小程序云开发实践

    作者简介: 陈天忱,IMWEB团队成员,腾讯前端开发工程师, 主要负责腾讯课堂小程序,腾讯课堂直播间等业务模块. 首先介绍下腾讯在线教育下的3个主要业务: ● 针对成人职业化,兴趣化学习的腾讯课堂: ...

最新文章

  1. 安装了mysql5.7后,如何进行配置(密码等)初始化
  2. log4j 配置,tomcat 启动或有后台操作时,控制台会显示很多 DEBUG 信息
  3. 新手入门深度学习 | 第六篇:TensorFlow2 回调极速入门
  4. java.lang.NumberFormatException 错误及解决办法
  5. VIJOS1212 Way Selection
  6. 一步步编写操作系统 69 汇编语言和c语言共同协作 70
  7. linux权限案例,Linux下的权限体系
  8. 树莓派与node.js —— onoff、dht
  9. 《How to Reshape Input Data for Long Short-Term Memory Networks in Keras》学习笔记
  10. Hive怎样加入第三方JAR
  11. Pop3_解决PKIX:unable to find valid certification path to requested target 的问题
  12. D1、D系列分辨率是多少
  13. 半导体器件基础与二极管电路
  14. wireshark读写pcap文件_pcap文件格式和wireshark解析
  15. 知识计算机硬件 教学设计,计算机硬件教案
  16. [生存志] 第15节 历代大事件概览 东汉
  17. Java如何在main方法中实例化内部类对象
  18. Kubernetes 1.14:Windows节点的生产级支持、Kubectl更新、持久本地卷GA
  19. 新概念2 课文和单词(2)
  20. 《Lucid Data Dreaming for Video Object Segmentation》论文笔记

热门文章

  1. deepin自带wine使用方法_图解deepin操作系统安装,体验定制版的国产操作系统
  2. 下载岳阳歪胡子_最新版岳阳皮皮歪胡子_最新版岳阳皮皮歪胡子
  3. 【Brian2学习教程之二】Introduction to Brian part 2: Synapses
  4. python 广告联盟_创建百度联盟广告代码位第一天盈利5毛 - 里维斯社
  5. windows 系统端口不通,改不了IP(麦咖啡mac)
  6. matlab五维插值,光学加工过程中高次非球面的三坐标测量数据处理
  7. 轻量级Kubernetes之k3s:7:集群一键部署脚本
  8. 谷歌浏览器无法翻译问题
  9. python爬取问卷星内容_python问卷星爬虫bug求助
  10. 计算机领域常用的英文名称和缩写,计算机中常用的英文缩写有哪些