vue-qr 二维码 添加logo 下载单个二维码 批量下载二维码并打包
使用 vue-qr 生成二维码并可以添加logo
逻辑:
1、下载二维码生成插件 这里用的是qrcode
2、下载二维码 使用html2canvas(其实解释一个截图工具)将标签截图并下载下来
3、 如果是下载多个就是多生成多个二维码 然后使用循环截下过个图片 然后将图片放进压缩包里面 (JSZip)然后在进行下载
下载 : npm install --save qrcode
引入 : import vueQr from “vue-qr”
注册 : components: { vueQr}
页面使用:
<vue-qr id="qr" :text="list" :size="580" :logoScale="2" :margin="10" ></vue-qr>
<div class="logo"><div>
属性说明:
text = “二维码内容”
size=“二维码宽高大小,因为是正方形,所以设一个参数即可”
logoScale=“中间图的尺寸,不要设太大,太大会导致扫码失败的”
margin=“默认边距20px,不喜欢的话自己设为0”
colorDark =“实点的颜色,注意要和colorLight一起设置才有效”
colorLight =“空白的颜色,注意要和colorDark一起设置才有效”
添加logo这里提供一个可行的思路就是 将logo定位到二维码中间但是要注意的是不要把logo设置的太大有可能会出现失效
下载单个二维码:
使用html2canvas截图工具进行截图
npm install --save html2canvas
import html2canvas from “html2canvas”;
//下载二维码 这里的html2canvas其实就是把html标签进行截图转成图片进行下载的var qr = document.getElementById("qr") //获取id为qr的标签html2CV(row) {setTimeout(() => {html2canvas(“这里填需要截图的标签,例如下载的标签id是qr直接就填写 qr”).then((resolve) => {let imgUrl = resolve.toDataURL("image/png"); //此时就得到了dom元素转成了base64的图片var a = document.createElement("a");var event = new MouseEvent("click");a.href = imgUrl;// 下载图名字a.download = row.restaurantName + row.name;// 合成函数,执行下载a.dispatchEvent(event);});}, 500);},
批量下载二维码并打包
其实方法还是一样的 就是逻辑不同和加了一个打包的步骤:
//这里通过循环的好很多的二维码 在通过定位 将"code-mar let:999999999;看不见的位置
<div :class="'code-mar'+index"v-for="(item,index) in list":key="index">
<vue-qr:text="item.list":size="580":logoScale="40":margin="10":correctLevel="3":logoMargin="5"></vue-qr></div>//创建压缩包batchMONi() {var zip = new JSZip();var CodeDase64 = zip.folder("餐厅二维码"); //包名称this.list.forEach((e, index) => {this.$nextTick(() => {this.htmls(e, index, zip, CodeDase64);});});});} else {this.$message.error("请选择要生成的座号");}},//下载多个htmls(row, index, zip, CodeDase64) {var htmlName = document.getElementsByClassName("code-mar"+index)setTimeout(() => {html2canvas(htmlName ).then((resolve) => {let imgUrl = resolve.toDataURL("image/png"); //此时就得到了dom元素转成了base64的图片const basePic = imgUrl.replace(/^data:image\/(png|jpg);base64,/, "");CodeDase64.file(row.restaurantName + row.name + ".png", basePic, {base64: true,});if (this.list.length - 1 === index) {zip.generateAsync({ type: "blob" }) // zip下载.then((content) => {loadingAll.close();saveAs(content, "二维码.zip"); // zip下载后的名字});}});}, 500);},
这里的代码可以参考 按照这个逻辑搞 完全没有问题 如果单纯的粘贴复制 运行不了的
这里的所有代码都是本人在项目中运用并实现出来的
vue-qr 二维码 添加logo 下载单个二维码 批量下载二维码并打包相关推荐
- python怎么批量下载年报_使用Python批量下载Wind数据库中的PDF报告
原标题:使用Python批量下载Wind数据库中的PDF报告 背景 最近小编出于工作需要,准备在Wind金融数据终端批量下载上市公司2019年第一季度业绩预告.通过相关的条件检索,发现其相关数据有近百 ...
- 自媒体批量下载短视频软件,批量下载短视频有诀窍
自媒体批量下载短视频软件,批量下载短视频有诀窍,现在随着短视频的爆火,越来越多的自媒体人和公司都注意到短视频这个平台流量有多大,短视频很容易变现也很容易引流,接下来我们来看看自媒体批量下载短视频软件有 ...
- [Windows] 哔哩下载姬—B站视频批量下载
哔哩下载姬 简介:哔哩下载姬是一款下载哔哩哔哩视频的免费软件.适用:windows系统文件大小:18.7 MB 特点: 1.无需登录即可下载. 2.可以多线程,多任务同时下载.(最高支持10线程,10 ...
- Android 生成二维码,条形码,二维码添加logo
zxing生成二维码 implementation 'com.google.zxing:core:3.3.1' implementation(name: 'zxing-1.0.1', ext: 'aa ...
- html页面导航图标添加,vue 切换网页导航栏添加logo及标题
index.html 网页导航栏添加logo及标题 var scene = window.location.host if (scene === 'anfang.cn') { document.que ...
- 用python批量下载网络图片_使用python批量下载图片吗?怎么做?
没想到吧,我们居然可以用python去下载图片,关于单个下载内容,之前已经出了教程告诉大家,大家应该都知道,图片跟文字似的,经常多个发布,我们如果想得到很多个图片,还得一个代码或者一个图片源的去敲击吗 ...
- JavaScript (mp3、mp4、jpg、doc、txt、rar)单个、多文件批量下载
JavaScript 多文件下载 HTML5中 a 标签新增了一个属性 download,一般情况下,用户点击a链接浏览器会打开对应的链接地址,如果链接地址是一个文件如(xxx.rar.xxx.jpg ...
- linux下载TCGA数据,使用gdc-client批量下载TCGA数据
欢迎关注"生信修炼手册"! GDC的在线下载功能只适用于下载小的数据集,当需要下载数据量较大的TCGA数据时,必须借助于GDC官方提供的客户端工具gdc-client.网址如下 h ...
- python 批量下载 代码_Python + Selenium +Chrome 批量下载网页代码修改
Python + Selenium +Chrome 批量下载网页代码修改 主要修改以下代码可以调用 本地的 user-agent.txt 和 cookie.txt 来达到在登陆状态下 批量打开并下载网 ...
最新文章
- s5-11 距离矢量路由选择协议
- 【BZOJ 1096】[ZJOI2007]仓库建设
- [SAP FI] Bank Master Vendor Master Creation Related Knowledge
- 【TensorFlow】实现、训练并评估简单的回归模型和分类模型
- leetcode力扣454. 四数相加 II
- 为什么ctrl+shift+方向键不管用了_键盘侠丨Shift键的快捷运用
- mysql怎么让id重新开始自增
- 如何扩展/删除swap分区
- c语言烟花代码,C语言烟花程序
- 百度地图点聚合开发-地图找房功能
- 关于分辨率,你该知道这些!
- 设计模式之单例模式(Singleton)
- 国内哪家CDN加速服务好用?
- 程序员,停止你的焦虑
- n+nn+nnn+...+n...=n...
- eMMC Partition
- Nachos系统调用的实现
- 服务器如何向前端页面推送消息,后端向前端推送消息
- iphone6s计算机驱动,教你iphone6s连接电脑出现驱动问题怎么办及iOS9.0.2 App Store打不开问题的解决方法...
- 设计求任意两个整数和的web程序,用户通过提交页面(input.jsp)输入两个整数,并提交给一个(sum.jsp)程序