vue——引入vue-pdf实现vue页面内预览pdf文件
参考:https://www.npmjs.com/package/vue-pdf
https://www.cnblogs.com/lodadssd/p/10297989.html
效果

1. 引入vue-pdf
我的vue版本是2.6.10,vue-pdf版本是4.1.0
npm install --save vue-pdf
2. 页面
<template>
<div ref="detail">
<van-loading v-if="loading" type="spinner" style="text-align: center;margin-top: 2rem;"/>
<div :class="loading?'hide':''">
<div>
<pdf
v-for="i in numPages"
:key="i"
:src="src"
:page="i"
@page-loaded="pageLoaded($event)"
></pdf>
</div>
</div>
</div>
</template>
<script>
import pdf from 'vue-pdf'
export default {
name: "detail",
components: {
pdf
},
data() {
return {
loading: true, // 显示加载效果
src: '',
numPages: undefined, // 总页数
curPageNum: 0, //当前页
}
},
methods: {
pageLoaded(e) {
this.curPageNum = e;
if (this.curPageNum == this.numPages) { //加载完最后一页
this.loading = false;
}
},
},
mounted() {
let that = this,
url = '***';
that.$refs.detail.scrollIntoView(true);
that.src = pdf.createLoadingTask(url); // url是pdf文件的全路径
that.src.promise.then(pdf => {
that.numPages = pdf.numPages;
});
},
}
</script>
<style lang="less">
.hide{
visibility: hidden;
}
</style>

浙公网安备 33010602011771号