html2canvas

官网:

https://html2canvas.hertzen.com/

参考文章:

https://www.jianshu.com/p/b70b52091b49?utm_campaign=haruki&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

安装:

npm install --save html2canvas

引入:

import html2canvas from “html2canvas”

<div 
  ref='shareImg'
  :style='{"background-image": "url(/static/img/share.jpg)"}'
  class="share-content-img"
>
  <!-- 日期 -->
  <div class='share-date'>
    xxx
  </div>

  <!-- 签单人 信息 -->
  <div class="shai-info">
    xxx
  </div>

  <!-- 下载按钮 -->
  <el-button :loading="loading" class='shai-down-btn' @click='downloadImg' type='text' icon='el-icon-download'></el-button>
</div>
downloadImg () {
  this.loading= true

  let canvasID = this.$refs['shareImg']
  let that = this
  let a = document.createElement('a')

  html2canvas(canvasID).then(canvas => {
    let dom = document.body.appendChild(canvas);
    dom.style.display = 'none';
    a.style.display = 'none';
    document.body.removeChild(dom);
    let blob = that.dataURLToBlob(dom.toDataURL('image/png'));
    a.setAttribute('href', URL.createObjectURL(blob));
    //这块是保存图片操作  可以设置保存的图片的信息
    a.setAttribute('download', '分享图片测试' + '.png');
    document.body.appendChild(a);
    a.click();
    URL.revokeObjectURL(blob);
    document.body.removeChild(a);

    setTimeout(() => {
      this.loading = false
    }, 1000)
  });
},

dataURLToBlob(dataurl) {
  let arr = dataurl.split(',');
  let mime = arr[0].match(/:(.*?);/)[1];
  let bstr = atob(arr[1]);
  let n = bstr.length;
  let u8arr = new Uint8Array(n);
  while (n--) {
      u8arr[n] = bstr.charCodeAt(n);
  }
  return new Blob([u8arr], { type: mime });
}

如果html中有图片,必须是项目中的图片,或者将图片下载后转为base64再使用,转换方法参考:

https://blog.csdn.net/weixin_42115781/article/details/113247286?spm=1001.2014.3001.5501

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值