当前位置: 首页 > news >正文

vue3中使用jszip压缩文件

1、安装依赖

npm install jszip
npm install file-saver --save

2、使用

<template><el-card class="mb15"><template #header><span>jszip</span></template><!-- 二维码容器 --><div id="qrCodeBox"></div></el-card>
</template><script setup lang="ts" name="demoView">
import { ref, onMounted } from 'vue'
import QRCode from 'qrcodejs2-fix';
import html2canvas from 'html2canvas';
import JSZip from 'jszip'
import { saveAs } from 'file-saver';const getQrCode = async () => {// 清空二维码容器内容document.getElementById('qrCodeBox').innerHTML = '';new QRCode(document.getElementById('qrCodeBox'), {//需要编码的文字内容或者URLtext: '生成二维码',width: 200, //二维码宽height: 200, //二维码高colorDark: '#000000',colorLight: '#ffffff',correctLevel: QRCode.CorrectLevel.H});// 如果在dialog里展示二维码图片,则需要注意使用nextTick
};const  base64img = ref()
const screenshot = async () => {html2canvas(document.querySelector('#qrCodeBox')).then(canvas => {base64img.value = canvas.toDataURL().replace(/^data:image\/(png|jpg);base64,/, '')// 打压缩包tozip()// 如果打包多张截图,参考代码如下/*printImg(arr) {const base64Array = [];arr.forEach(item => {let el = document.querySelector(`#zip${item.id}`)html2canvas(el).then(canvas => {base64Array.push({name: `${item.id}.png`,data: canvas.toDataURL().replace(/^data:image\/(png|jpg);base64,/, '')});if(base64Array.length == arr.length) {this.downloadZip(base64Array,'二维码')}})})},*/})
}const tozip = () => {const zip = new JSZip();zip.file('1.png', base64img.value, { base64: true });zip.generateAsync({ type: 'blob' }).then(content => {saveAs(content, `压缩包.zip`)})
}onMounted(async () => {// 生成二维码await getQrCode()// 截图await screenshot()
})
</script><style lang="scss" scoped>
#qrCodeBox {width: 200px;height: 200px;
}
</style>

3、页面

 4、效果

 

 

http://www.lryc.cn/news/15215.html

相关文章:

  • React 虚拟DOM的前世今生
  • Java环境变量配置
  • 超详细解读!数据库表分区技术全攻略
  • Redis高可用集群方案
  • 企业微信机器人发送消息
  • 使用PHP+yii2调用asmx服务接口
  • 【042】904. 水果成篮[滑动窗口]
  • Linux基础知识(一)
  • Redis面试题
  • 微服务之Eureka
  • 日日顺于贞超:供应链数字化要做到有数、有路、有人
  • Js中blob、file、FormData、DataView、TypedArray
  • CTFer成长之路之任意文件读取漏洞
  • 制造企业为何要上数字化工厂系统?
  • Facebook广告投放的正确姿势:玩转目标定位
  • 思科C9115AXI-H型号AP上线C9800失败处理记录
  • WSO2通过设定Role来订阅对应的Api
  • 使用 PyTorch+LSTM 进行单变量时间序列预测(附完整源码)
  • 操作系统(day12)-- 虚拟内存;页面分配策略
  • Git commit 提交没有被远端分支合并,撤销本次commit
  • Netty核心原理(线程模型、核心API)与入门案例详解
  • 【 java 8】Lambda 表达式
  • 改进YOLO系列 | 谷歌团队 | CondConv:用于高效推理的条件参数化卷积
  • SQL高级 --优化
  • 【C++】空间配置器
  • nginx的介绍及源码安装
  • 通过openssl生成pfx证书
  • 华为OD机试真题Python实现【敏感字段加密】真题+解题思路+代码(20222023)
  • 我的 System Verilog 学习记录(1)
  • 金三银四,我不允许你们不知道这些软件测试面试题