// 遍历canvas列表,每页添加一张图片 canvasList.forEach((item,index)=>{ // 转换图片格式为base64 let itemImage = item.toDataURL(‘image/jpeg’,1.0); // 预留10px边距,A4纸的宽在72分辨率的显示器上是595px pdf.addImage(itemImage,’JPEG’,10,10,575.28,575.28/item.width*item.height); // 如果不是最后一页,则分页 index == this.forms.length-1 ? ” : pdf.addPage(); }) // 文件保存 let blob = pdf.output(‘blob’); pdf.save(‘test.pdf’); }) }, /** * @description: 对canvas进行切割 * @param {number} num 切片数量 * @param {canvas} canvas * @return {array} canvas列表 */ splitCanvas(canvas,num){ let height = canvas.height,width = canvas.width; let chunkHeight = height/num;// 每个切片的高度 let chunkList = [];// 存放结果canvas for(let i=0; i<height ; i+=chunkHeight){ // 初始化裁剪矩形框位置 let sx = 0,sy = i,sWidth = width,sHeight = chunkHeight,dx = 0, dy = 0; // 创建一个canvas节点 let canvasItem =document.createElement(“canvas”); // 初始化画布大小 canvasItem.height = chunkHeight; canvasItem.width = width; let cxt = canvasItem.getContext(“2d”); // 将裁剪的图片放到新的canvas节点 cxt.drawImage(canvas,sx,sy,sWidth,sHeight,dx,dy,sWidth,sHeight); chunkList.push(canvasItem); } return chunkList; },

到此这篇关于HTML转PDF的纯客户端和纯服务端实现方案的文章就介绍到这了,更多相关HTML转PDF内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!
来源:脚本之家
链接:https://www.jb51.net/web/722457.html
申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇!
本文素材来自互联网 (编辑:应用网_阳江站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|