加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_阳江站长网 (https://www.0662zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 政策 > 正文

HTML转PDF的纯客户端和纯服务端实现方案

发布时间:2020-12-26 03:31:31 所属栏目:政策 来源:做站长
导读:这篇文章主要介绍了HTML转PDF的纯客户端和纯服务端实现方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 需求 用户填写表单,点击保存之后,可以直接下载pdf文档。 解决思路

        // 遍历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的纯客户端和纯服务端实现方案的文章就介绍到这了,更多相关HTML转PDF内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

来源:脚本之家

链接:https://www.jb51.net/web/722457.html

申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇!

本文素材来自互联网

(编辑:应用网_阳江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读