简单的HTML快照生成,导出pdf或图片

一、利用 html2canvas实现HTML页面截图

官方网址: https://html2canvas.hertzen.com/

GitHub:https://github.com/niklasvh/html2canvas

1.HTML页面引入 html2canvas.min.js
2.定义一个截图的触发按钮
 <button onclick="exprotImg();">导出图片</button> 
 <a href="" download="canvas.png" id="save_href" style="display:none">
        <img src="" id="save_img"/>
  </a>
3.js代码
function exprotImg() {
    // 要截图的元素
    var element = document.getElementsByTagName('html')[0];
    // 获取元素的大小及其相对于视口的位置等参数
    var dd= element.getBoundingClientRect();

    var opts = {
        scale: 2, // 添加的scale 参数
        // logging: true, //日志开关,便于查看html2canvas的内部执行流程
        width: dd.width, //dom 原始宽度
        height: dd.height,
        useCORS: true, // 【重要】开启跨域配置
         allowTaint:true
    };

    html2canvas(element,opts).then(function(canvas) {
        // 模拟的下载按钮
        var svaeHref = document.getElementById("save_href");
        var img = document.getElementById("save_img");
        var tempSrc = canvas.toDataURL("image/png");
        svaeHref.href=tempSrc;
        img.src=tempSrc;
        $(img).click();
    });
}

二、利用 html2pdf 实现页面导出pdf

GitHub :https://github.com/eKoopmans/html2pdf

1.页面导入 html2pdf.bundle.min.js
2.导出按钮
<button onclick="exprotPdf();">导出pdf</button>
3.js代码
function exprotPdf() {
    // 要截图的元素
    var element = document.getElementsByTagName('html')[0];
    // 获取元素的大小及其相对于视口的位置等参数
    var opt = {
        margin:  1,
        filename:  'myfile.pdf',
        image:   { type: 'png', quality: 0.98 },
        html2canvas:  {
            scale: 2,
            useCORS:true, // 【重要】开启跨域配置
            allowTaint:true,
            width:dd.width,
            height:dd.height
        },
        jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' }
    };

    html2pdf().from(element).set(opt).save();

}

三.复杂页面导出

点击链接查看:复杂HTML导出pdf或图片,支持模拟跳过登陆验证

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值