vue页面导出图片

需求:将数据统计导出为图片,并且每天定时给企业微信推送。

导出图片,使用html2canvas 插件

代码:

dataURLToBlob(dataurl) { // ie 图片转格式

      var arr = dataurl.split(',')

      var mime = arr[0].match(/:(.*?);/)[1]

      var bstr = atob(arr[1])

      var n = bstr.length

      var u8arr = new Uint8Array(n)

      while (n--) {

        u8arr[n] = bstr.charCodeAt(n)

      }

      return new Blob([u8arr], { type: mime })

    },

    downloadResult() {

      const canvasID = document.getElementById('content')

      const a = document.createElement('a')

      canvasID.style.backgroundImage = 'linear-gradient(to top, orange 20%, #27273c 80%)' //修改导出图片的颜色,,理由:这个网页背景使用了动态效果

      const eldate = document.getElementsByClassName('el-input__inner')

      eldate[0].style.paddingTop = '6px'

      html2canvas(canvasID).then(canvas => {

        const dom = document.body.appendChild(canvas)

        dom.style.display = 'none'

        a.style.display = 'none'

        document.body.removeChild(dom)

        const blob = dom.toDataURL('image/png')

        const formData = new FormData()

        formData.append('imgBase64', blob) //使用base64进行保存

        sendStaticImg(formData).then(res => {

          console.log('2324', res)

          if (res.status === 200) {

            this.$message.success('保存图片成功')

          }

        })

      })

      canvasID.style.backgroundImage = '' //因为修改后,原本不需要修改,恢复

      eldate[0].style.paddingTop = ''

    },

    printOut() {

      // const name = 'ES数据统计'

      // 个人观察只是截取可见范围以及以下的区域,所以先将滚动条置顶

      // $(window).scrollTop(0); // jQuery 的方法

      // window.pageYOffset = 0

      document.body.scrollTop = 0 // IE的

      document.documentElement.scrollTop = 0 // 其他

      this.downloadResult()

    },

每天定时保存,是通过在nodejs开启定时器,然后固定每天打开网页,然后执行该网页的代码

const open = require('open');open('')

最后实现效果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值