利用截图实现导出功能

1.导入这几个js
<script th:src="@{/css/js/canvg.js}"></script>
<script th:src="@{/css/js/highcharts.js}"></script>
<script th:src="@{/css/js/html2canvas.js}"></script>
<script th:src="@{/css/js/rgbcolor.js}"></script>
<script th:src="@{/css/js/stackblur.js}"></script>

2.导出按钮设置id,

3.设置下载位置

4.点击导出按钮触发时间,I123-content-wrap为所需要截图区域div的class

//导出功能
$("#button").click(function() {
    //以下是对svg的处理
    var nodesToRecover = [];
    var nodesToRemove = [];
    var svgElem = $(".I123-content-wrap").find('svg');//C123-chartOuter为需要截取成图片的dom的class
    svgElem.each(function (index, node) {
        var parentNode = node.parentNode;
        var svg = node.outerHTML.trim();
        var canvas = document.createElement('canvas');
        canvg(canvas, svg);
        if (node.style.position) {
            canvas.style.position += node.style.position;
            canvas.style.left += node.style.left;
            canvas.style.top += node.style.top;
        }
        nodesToRecover.push({
            parent: parentNode,
            child: node
        });
        parentNode.removeChild(node);
        nodesToRemove.push({
            parent: parentNode,
            child: canvas
        });
        parentNode.appendChild(canvas);
    });
    html2canvas($(".I123-content-wrap"), {
        useCORS: true,
        allowTaint: true,
        height: $(".I123-content-wrap").outerHeight() + 500,
        width: $(".I123-content-wrap").outerWidth() + 30  ,
        dpi: window.devicePixelRatio,
        onrendered: function(canvas) {
            //将canvas画布放大若干倍,然后盛放在较小的容器内,就显得不模糊了
            var timestamp = Date.parse(new Date());
            //把截取到的图片替换到a标签的路径下载
            $("#down1").attr('href',canvas.toDataURL());
            //下载下来的图片名字
            $("#down1").attr('download',timestamp + '.png') ;
            document.getElementById("down1").click();
            history.go(0);
        }
        //可以带上宽高截取你所需要的部分内容
    });

});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值