zoukankan      html  css  js  c++  java
  • Vue使用html2canvas将页面转化为图片下载到本地

    install

    npm install --save html2canvas

    在所需页面引入

    import html2canvas from "html2canvas"

    use

    <div
      ref="codeRef"
      class="code text-white text-center p-20px relative mb-30px"
    >
      <p class="text-xl mb-10px">
        {{ univName }}
      </p>
      <p>报名点</p>
      <img
        class="mt-22px"
        width="154"
        height="154"
        src="~assets/images/pages/opcenter/admissions/code.png"
        alt="报名二维码"
      />
      <p class="absolute bottom-12 left-0 w-full text-xs">
        招生老师:{{ teacherName }}
        {{ formState.phone }}
      </p>
    </div>
    <a-button
      class="default-acctive mr-12px flex-shrink-0 block m-auto"
      @click="downloadCode"
    >
      下载报名海报
    </a-button>

    vue中用ref来指定你需要转成图片下载的dom

    const downloadCode = () => {
      html2canvas(this.$refs.codeRef).then(canvas => {
        const base64 = canvas.toDataURL('image/png')
        const myBlob = dataURLtoBlob(base64)
        const myUrl = URL.createObjectURL(myBlob)
        downloadFile(myUrl, '报名二维码')
      })
    }
    const dataURLtoBlob = (dataurl: string) => {
      const arr: any[] = dataurl.split(',')
      const mime = arr[0].match(/:(.*?);/)[1]
      const bstr = atob(arr[1])
      let n = bstr.length
      const u8arr = new Uint8Array(n)
      while (n--) {
        u8arr[n] = bstr.charCodeAt(n)
      }
      return new Blob([u8arr], { type: mime })
    }
    const downloadFile = (url: string, name: string) => {
      const a = document.createElement('a')
      a.setAttribute('href', url)
      a.setAttribute('download', name)
      a.setAttribute('target', '_blank')
      const clickEvent = document.createEvent('MouseEvents')
      clickEvent.initEvent('click', true, true)
      a.dispatchEvent(clickEvent)
    }

    参考链接:https://www.cnblogs.com/zouwangblog/p/11140568.html

    参考链接:https://www.cnblogs.com/myflowers/p/13753540.html

  • 相关阅读:
    spark学习
    推荐系统-摘录
    matplotlib安装问题解决
    秒杀系统分析
    大数据常用启动命令
    推荐系统简介
    java面试-JVM内存结构
    推荐算法-基于内容的推荐
    推荐算法-基于模型的协同过滤
    监督学习之模型评估与选择
  • 原文地址:https://www.cnblogs.com/ziyoublog/p/15129262.html
Copyright © 2011-2022 走看看