vue npm安装pdfjs-dist,后端返回文件流预览pdf文件,兼容IE11

npm 安装依赖 pdfjs-dist(版本号:2.10.377(目前最新版))

npm install pdfjs-dist --save
注:vue-pdf不兼容IE,pdf.js那个需要下载的,不支持npm依赖包安装,所以选择这个

在vue文件中引入

// 网上很多这里直接引入的,不知道他们怎么对的,反正我要报错,也可能是版本问题
import * as PDFJS from 'pdfjs-dist/legacy/build/pdf'
// workerSrc 要重新赋值下
import workerSrc from 'pdfjs-dist/legacy/build/pdf.worker.entry'
PDFJS.workerSrc = workerSrc

获取后端文件流,并预览

dowloadPDFApi().then(res => {
  const blob = new Blob([res.data], { application/pdf })
  // 因为pdf的getDocument方法接受的src,只能是string,uint8Array,还有URL类型,
  // 所以这里对这个blob流做下处理
  let reader = new FileReader()
  // 有些地方这里用的readAsDataurl,这个方法转出来的会不兼容IE 
  reader.readAsArrayBuffer(blob)
  reader.onloadend = (e) => {
    //这个数据兼容IE11
    const rawArray = new Uint8Array(e.target.result)
    this.pdfData = PDFJS.getDocument(rawArray)
    this.pdfData.promise.then((pdf) => {
      // 这里方法里都通用可以自行百度即可  
      pdf.getPage(this.currentPage).then(page => {
        // 这里不要直接传个scale,看网上有些人是直接传的,这里直接传了是个坑,视口的宽高全是NaN
        let viewport = page.getViewport({scale: 1})
        ...
      })
    })
  }
})

你可能感兴趣的:(vue npm安装pdfjs-dist,后端返回文件流预览pdf文件,兼容IE11)