import * as PDFJS from 'pdfjs-dist/legacy/build/pdf.js' import pdfjsWorker from 'pdfjs-dist/legacy/build/pdf.worker.entry' PDFJS.cMapUrl = 'https://cdn.jsdelivr.net/npm/pdfjs-dist@2.10.377/cmaps/' PDFJS.cMapPacked = true PDFJS.GlobalWorkerOptions.workerSrc = pdfjsWorker export const verificationTypeList = [ '001', '00101', '00102', '00103', '002', '00104', ] export const getImgUrl = (objId, yearFlag) => { return new Promise((resolve, reject) => { window.GMS.$http.post( `/yxgl/getImageContent`, { imageId: objId, yearFlag }, { responseType: "blob", } ).then((res) => { const _res = res.data; const fileType = res.headers['content-type'] == 'application/pdf' ? 'pdf' : 'img' const dis = res.headers['content-disposition'] let fileName = dis.split("filename*=UTF-8''")[1] fileName = decodeURIComponent(fileName) let blob = new Blob([_res], { type: res.headers['content-type'] }); let href = window.URL.createObjectURL(blob); //创建下载的链接 if (fileType == 'img') { resolve({ url: href, fileName }) } else if (fileType == 'pdf') { getPdfImg(href).then((res) => { resolve({ url: res, fileName }) }) } else { reject('invalid img file type') } }).catch((err) => { reject(err) }) }) } export const getPdfImg = (href) => { return new Promise((resolve, reject) => { const pdfParam = { url: href, cMapUrl: 'https://cdn.jsdelivr.net/npm/pdfjs-dist@2.10.377/cmaps/', cMapPacked: true } PDFJS.getDocument(pdfParam).promise.then(function (pdfdoc) { //pdfdoc.numPages;pdf文件的总页数 pdfdoc.getPage(1).then(function (page) { let scale = 2 let viewport = page.getViewport({scale}); let canvas = document.createElement("canvas"); let context = canvas.getContext("2d"); canvas.height = viewport.height; canvas.width = viewport.width; let renderContext = { canvasContext: context, viewport: viewport, }; page.render(renderContext).promise.then(() => { //返回图片的base64数据 可直接用于img的src属性 resolve(canvas.toDataURL("image/jpeg")); }); }); }); }); }