html2canvas实现页面截图

需求是将页面上存在的图表转换成图片的方式传给后端,然后后端生成word文档。图表使用的是echarts,如果只单独截图表部分的话可以使用echarts自带的api。但是!内容还包含其他部分。于是就使用了html2canvas。
1:安装
npm i html2canvas --save
2:引入
import html2canvas from ‘html2canvas’
3: 使用

//xxx代表你要截取的dom元素
      html2canvas(xxx, {
            useCORS: true, //跨域
            scale: 0.5  //根据需要配置缩放比例
          }).then(canvas => {
           //生成base64
            let dataUrl = canvas.toDataURL('image/png');
            //后端要求传file对象
            //先转换成blob,再转成file
            let blob = this.dataURLtoBlob(dataUrl);
            let file = this.blobToFile(blob, imageName+ '.png');
          })
          //转成blob
      dataURLtoBlob(dataurl) {
            let arr = dataurl.split(","),
            mime = arr[0].match(/:(.*?);/)[1],
            bstr = atob(arr[1]),
            n = bstr.length,
            u8arr = new Uint8Array(n);
            while (n--) {
              u8arr[n] = bstr.charCodeAt(n);
             }
             return new Blob([u8arr], {
                type: mime
             });
    },

     //转成file
       blobToFile(theBlob, fileName) {
          let file = new File([theBlob], fileName, {
          type: 'image/png',
          lastModified: Date.now()
           });
          return file;
        },
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值