vue PDF下载与预览(文件流格式和base64格式)

时间:2025-02-18 09:49:39
getPDFDataOfYL({ fileId: item.DOC }).then(res => { this.loading = false; if (res.data.data) { // 预览 if (flag !== 'DOWN') { this.basePdf = res?.data?.data; const basedata = res.data.data; this.pdfContent = 'data:application/pdf;base64,' + basedata; this.src = pdf.createLoadingTask({ url: this.pdfContent, CMapReaderFactory }); this.src.promise.then(pdf => { this.numPages = pdf.numPages; }); } else { // 下载 this.dataURLtoBlob(res?.data?.data); var reader = new FileReader(); reader.readAsDataURL(this.transData); reader.onload = function (e) { // 兼容IE if (window.navigator.msSaveOrOpenBlob) { var bstr = atob(e.target.result.split(',')[1]); var n = bstr.length; var u8arr = new Uint8Array(n); while (n--) { u8arr[n] = bstr.charCodeAt(n); } var blob = new Blob([u8arr]); window.navigator.msSaveOrOpenBlob(blob, item.DOCNAME); } else { // 转换完成,创建一个a标签用于下载 const a = document.createElement('a'); a.download = item.DOCNAME; // 这里写你的文件名 a.href = e.target.result; document.body.appendChild(a); a.click(); document.body.removeChild(a); } }; } } });