JSZip解压PDF文件并批量下载
JSzip解压PDF文件并批量下载
因需要解压PDF文件并且实现批量下载,但网上找到的基本都是图片的解压和下载,所以参考图片的解压修改了一下。
用到了jszip,jszip-utils,file-saver这三个依赖
下面进入正题
实现zip文件的解压并打包
async unZipHandle(arr) {// arr为需要解压的数组let zip = new JSZip();let promises = []; // 存放解压的文件let that = this;// 这里用await就是为了改成同步,需要等数据处理完才进行下一步await arr.forEach((item) => {let promise = that.getUrlBuffer(item).then((pdf) => {// getUrlBuffer这里是把url解压转化成文件for (let key in pdf.files) {// 判断是否是目录if (!pdf.files[key].dir) {if (/\.(pdf)$/.test(pdf.files[key].name)) {// 这里判断是pdf文件,其他文件的话,换个格式return pdf.file(pdf.files[key].name).async("ArrayBuffer").then((data) => {// 把文件转化为buffer// this.arrayBufferToBlob(data);这个是因为pdf需要展示,所以我这边把buffer转化成blob文件会得到个url,方便用来展示。后面会补充这个方法// return出buffer生成的文件return zip.file(pdf.files[key].name, data, {binary: true,});});}}}// zip.file("测试", pdf, { binary: true });});// 将循环得到的所有promise存到一个数组里面promises.push(promise);});Promise.all(promises) // this.policyNo.then((res) => {// 这里就简单了,当所有promise执行完之后,打包下载zip.generateAsync({type: "blob",}).then((content) => {// zipName这个是压缩包名称,可以自己定义FileSaver.saveAs(content, zipName);});});
}
解压方法内的方法补充
zip解压成源文件的方法
getUrlBuffer(url) {// zip解压成源文件的方法return new JSZip.external.Promise(function (resolve, reject) {JSZipUtils.getBinaryContent(url, function (err, data) {if (err) {reject(err);} else {resolve(data);}});}).then(function (data) {return JSZip.loadAsync(data);});}
将arrayBuffer转化成blob
arrayBufferToBlob(arrayBuffer) { // 为了得到文件临时的urlreturn URL.createObjectURL(new Blob([arrayBuffer], { type: "application/pdf" }) // 不加type会乱码);},
上面的解压方法内包含了文件的解压,转化arrayBuffer以及Blob(转Blob是因为临时展示文件不需要的同学可以忽略)循环解压一定要改成同步,不然数据处理会有问题。
喜欢的同学,可以点个赞再走,谢谢了!
JSZip解压PDF文件并批量下载相关推荐
- java关于对于word或者pdf文件的批量下载实现,其中包括(Java实现创建word文档模板,根据模板导出word文档)
本次需求是,pdf是表格类型的文件,我这里使用了word模板进行处理.但由于是多个文件一起导出,因此全部放到一个目录底下进行打包下载. ## 整体思路 /*** 下载思路:* 1.查询出数据后:* 2 ...
- 使用InfoZip压缩解压zip文件
使用InfoZip压缩解压zip文件 源码下载地址:http://download.csdn.net/detail/risingsun001/4254821 先贴部分源码: void CInfozip ...
- windows通过命令方式解压zip文件
windows通过命令方式解压zip文件 1.下载unzip 2.下载完成后,默认安装就好,安装后将bin目录下的unzip.exe文件放在C:\Windows目录下 3.再次执行命令行,就可以解压了 ...
- centos 解压rar文件
首先需要下载解压该文件的工具 下载 下载自己的版本,下边以64位的为例: wget http://www.rarlab.com/rar/rarlinux-x64-5.6.1.tar.gz 解压 到文件 ...
- (压缩包在本地目录或由链接请求)使用jszip解压文件或compressing解压文件到指定目录,写个node脚本
使用jszip解压文件与compressing解压zip文件到指定目录 一.介绍jszip和compressing模块 jszip和compressing模块都是可以压缩和解压缩zip文件,都可以通过 ...
- python批量解压文件_python 批量解压压缩文件的实例代码
下面给大家介绍python 批量解压压缩文件的实例代码,代码如下所述: #/usr/bin/python#coding=utf-8import os,sys import zipfile open_p ...
- deb下载路径、apt下载路径(deb路径、apt路径)、自定义打包deb文件、安装deb文件、解压deb文件
只下载不安装deb apt-get --download-only install freesweep 默认下载路径:/var/cache/apt/archive 解压deb文件 dpkg -x f ...
- java csv文件tozip后损坏_java上传并下载以及解压zip文件有时会报文件被损坏错误分析以及解决...
情景描述: 1.将本地数据备份成zip文件: 2.将备份的zip文件通过sftp上传到文件服务器: 3.将文件服务器上的zip文件下载到运行服务器: 4.将下载的zip文件解压到本地(文件大小超过50 ...
- linux 批量解压gz文件夹,linux 批量解压gz bz2文件
一.批量解压bz2文件 find -maxdepth 1 -name "*.bz2"|xargs -i tar xvjf {} 这条命令可解压当前目录下的所有bz2文件 批量解压是 ...
最新文章
- IEWebBrowser组件的execWB方法
- 旧金山漫记(四):夜困火车站
- Selleck --- 01Cookie
- ArcGIS之GP服务发布
- Mac 实现keras网络模型可视化【conda】
- CCNA初认识——ACL命令
- Resource Hacker+mysql安装会出现错误“应用程序无法启动因为应用程序的并行配置不正确”...
- MTK 驱动开发(54)---MTK-thermal.conf温度参数修改的方法
- 挂载ntfs_NTFSTool for mac(NTFS硬盘读写工具) 中文免费版
- IntentService用法小结
- centos光盘修复引导_CentOS 6.5 修复grub引导
- 数据分析 超市条码_深圳超市通道摆闸常见故障解决|指示灯|摆闸|通道|限位
- 百度火星坐标转wgs84
- 2020德勤面试开始了吗_曝!玛氏、德勤、携程面试题新鲜出炉!2020第一波面试复盘来了......
- SoftICE使用(2)-网络远程调试zz xfocus
- iOS相机、相册的访问权限
- 手机可以连上wifi,电脑连不上怎么办?
- 微信平台开发的基本步骤讲解
- 小米MIUI12开发版内测-答题
- 焦作师范高等专科学校计算机,热烈欢迎丨焦作师范高等专科学院计算机与信息工程学院莅临智游...