vue 打开html流_基于VUE利用pdf.js实现文件流形式的pdf显示

首先推荐大家看一下这个demo vue-pdf.js-demo,这里面包含固定本地地址,远程pdf地址,通过打开文件的方式打开pdf

这儿我们着重介绍一下通过文件流的形式打开pdf。(所谓文件流,就是通过ajax请求,返回的数据是文件流的形式)

1. 首先通过下载pdf.js的相关文件,当然我推荐直接拷贝 vue-pdf.js-demo里面的文件,然后放到static目录里面

2. 第二步就是直接使用了

在组件中合适的地方放入 iframe

3. 然后就是获取pdfUrl(这儿也推荐两种方式)

第一种,直接调用文件流的请求地址

// 这儿的url, 就是通过 axios 进行请求的地址,只不过换成了从导航url进行请求的方式

let url = process.env.BASE_API + '/coursePartDetail/getFileStreamByCoursePartDetailId?CoursePartDetailId=' + this.sectionMsg.id

this.pdfUrl = `/static/pdf/web/viewer.html?file=${encodeURIComponent(url)}`

第二种,通过 axios 请求获取到的文件流进行处理(当然如果有加密相关的也可以通过这种方式,将获取到的文件进行解密,这种方式就要自己去研究了)

// 这儿的 getPdf() 是获取文件流的 axios 封装方法

getPdf().then( res => {

// 这儿的res是返回的文件流

this.pdfUrl = this.getObjectURL(res)

})

// 将返回的流数据转换为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) {

}

} else if (window.URL != undefined) { // mozilla(firefox)

try {

url = window.URL.createObjectURL(file);

} catch (error) {

}

}

return url;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值