vue二维码生成且带文字图片下载

(一)web页面效果:

                                          

 (二)执行结果:

 

(三)vue代码实例:

1)安装qrcode-vue库:npm install --save qrcode-vue 

2)安装html2canvas库:npm install --save html2canvas

3)vue代码

<template>
<div>
  <div class="div-box">
     <div ref="content" style="width:fit-content;height:fit-content;text-align: center;">
        <qrcode-vue
            :size="qrcodeVue.size"
            :value="qrcodeVue.value"
            :bgColor="qrcodeVue.bgColor"
            :fgColor="qrcodeVue.fgColor">
        </qrcode-vue>
         <p>描述文字...</p>
     </div>
  </div> 
  <el-button type="primary" icon="el-icon-document" size="small" @click="downloadCode">下载二维码文字图片</el-button>
</div>      
</template>

<script>

  import qrcodeVue from 'qrcode-vue'
  import html2canvas from 'html2canvas'

  export default {
    name: 'Test',
    components: { qrcodeVue },
    data () {
      return {
         qrcodeVue: {
          size: 150,
          bgColor: '#67C23A', //背景色
          fgColor: '#FFFFFF', //前景色
          value: 'qrCode value', //二维码值
          logo: require('@/assets/logo.png') //logo图片
        }
      }
    },
    created () {
      
    },
    mounted () {
       
    },
    methods: {
     downloadCode(){
				let content = this.$refs.content
				let scrollHeight = content.scrollHeight
				let scrollWidth = content.scrollWidth
				html2canvas(content,{
						scale: window.devicePixelRatio*2,
						useCORS: true , //开启跨域配置,但和allowTaint不能共存
						width:scrollWidth,
						height:scrollHeight,
						windowWidth:scrollWidth,
						windowHeight:scrollHeight,
						x:0,
						y:window.pageYOffset
					}).then((canvas) => {
						this.operType = 'edit'
						let dataURL = canvas.toDataURL("image/jpg");
						let link = document.createElement("a");    
						link.href = dataURL;
						let filename = `二维码文件名.jpg`;  //文件名称
						link.setAttribute("download", filename);
						link.style.display = "none"; //a标签隐藏
						document.body.appendChild(link);
						link.click();
					})
			}
    }
  }
</script>

<style>
.div-box {
    width:fit-content;
    height:fit-content;
    padding: 2px;
    border: 1px dashed #f69c55;
    position: relative;
    text-align: center;
    margin-bottom: 5px;
}
</style>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值