vue项目通过npm 引入pdf.js 并预览pdf文件

vue项目通过npm 引入pdf.js 并预览后端传来的二进制流pdf文件


)

废话不多说 直接上才艺

首先需要引入vue-pdf 通过

npm install vue-pdf -D

或者

cnpm install vue-pdf -D

其次,需要在项目中引用

import pdf from 'vue-pdf'

在html中
<pdf :src="pdfSrc" v-for="i in numPages" :key="i" :page="i"/>

components中

 components: { pdf }

data()中

data () {
	return { 
		pdfSrc:'',
 		numPages:0
	}
}

js方法

 let res = await 你的二进制pdf文件流获取函数()
  this.pdfTask(res)
   pdfTask(res){
        var self = this
        self.pdfSrc=  this.getObjectURL(res);
        var loadingTask = pdf.createLoadingTask(self.pdfSrc)  
        loadingTask.then(pdf => {
          self.pdfSrc = loadingTask
          self.numPages = pdf.numPages// 这里得到pdf的页数
        }).catch()
      },
     // 将返回的流数据转换为url
      getObjectURL(file) {
        let url = null;
        if (window.createObjectURL != undefined) { // basic
          url = window.createObjectURL(file);
        } else if (window.webkitURL != undefined) { // webkit or chrome
          try {
            url = window.webkitURL.createObjectURL(file);
          } catch (error) {
            console.log(error)
          }
        } else if (window.URL != undefined) { // mozilla(firefox)
          try {
            url = window.URL.createObjectURL(file);
          } catch (error) {
            console.log(error)
          }
        }
        return url;
      }

结束

在这里插入图片描述请求头部一定要加上 { responseType: 'blob' }

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值