vue-pdf和iframe实现预览pdf⽂件前⾔
前端项⽬中预览pdf⽂件,
提⽰:⾃⼰的笔记还在修改
⼀、vue-pdf
1.安装
代码如下(⽰例):
npm install --save vue-pdf
2.页⾯结构
代码如下(⽰例):
<template>
<div>
<pdf
ref="pdf"
:src="url"联想一键还原不能用
>
</pdf>
</div>
</template>
<script>
import pdf from 'vue-pdf'
export default{
components:{
pdf
},
data(){
return{
url:"image.cache.timepack/nodejs.pdf",
}
}
</script>
3.注意
注意:这是pdf在页⾯上只显⽰⼀页
4.pdf显⽰多页
<div>
<pdf
ref="pdf"
v-for="i in numPages"
:key="i"
空调安装位置:src="url"
:page="i"
></pdf>
</div>
</template>
<script>
import pdf from 'vue-pdf'
export default{
高考时间表安排2022
components:{
pdf
},
data(){
return{
url:"image.cache.timepack/nodejs.pdf",
numPages: null,// pdf 总页数
}
},
公交卡
mounted(){
郑宇成电视剧
},
methods:{
# 计算pdf页码总数
getNumPages(){
let loadingTask = ateLoadingTask(this.url)
loadingTask.promise.then(pdf =>{
this.numPages = pdf.numPages
}).catch(err =>{
<('pdf 加载失败', err);
})
},
}
</script>
5.注意
注意:
把pdf的内容都加载出来, 页数⼀多, 浏览器直接卡在加载的状态,所以我们可以考虑按页加载,有的卡在加载状态时间很久,有的已经出来了,但再次刷新时已经出来的也可能再次卡顿,不太清楚具体是怎么回事
6.实现分页预览
<div class="pdf">
<div class="arrow">
<button @click="Sub">--</button>
{{currentPage}}/{{pageCount}}
<button @click="Add">++</button>
</div>
<pdf
:src="src"
:page="currentPage"
@num-pages="pageCount=$event"
@page-loaded="currentPage=$event"
@loaded="lr">
</pdf>
</div>
</template>
<script>
import pdf from 'vue-pdf'
export default{
components:{
pdf
},
data(){
return{
currentPage:0,// pdf⽂件页码
pageCount:0,// pdf⽂件总页数   
src:'/static/pdf/guang.pdf',// pdf⽂件地址}
}, 
methods:{
Sub(){
if(this.currentPage>1){
this.currentPage--
}
},
Add(){
if(this.currentPage<this.pageCount){
this.currentPage++
}
},
// pdf加载时
lr(e){
this.currentPage =1// 加载的时候先加载第⼀页}
}
}
</script>
梅州雁鸣湖度假村<style>
</style>
直接使⽤了iframe标签
⼆、iframe
1.页⾯结构
<iframe id="ddd":src="wsyitem2.src" width="100%%" height="100%"></iframe>
2.页⾯展⽰
可见⼀个ifranme可预览,下载,打印,看⽬录,放⼤等功能,但当第⼆次点击对应的iframe标签时,却不显⽰pdf⽂件了2.原因