14、vue-pdf的使用
安装
npm install --save vue-pdf
vue-pdf默认只显示第一页,可以写按钮翻页,也可以v-for多页显示
项目结构
实例一 按钮分页
<template>
<div class="hello">
{{currentPage}} / {{pageCount}}
<button @click="change1">上一页</button>
<button @click="change2">下一页</button>
<br>
<pdf
:src="src"
:page="currentPage"
@num-pages="pageCount = $event"
@page-loaded="currentPage = $event"
class="pdf-set"
></pdf>
</div>
</template>
<script>
import pdf from 'vue-pdf'
export default {
components:{
pdf
},
name: 'HelloWorld',
data(){
return{
src:origin+'/file/数据结构与算法JavaScript描述.pdf',
currentPage: 1,
pageCount: 1,
}
},
methods:{
change1(){
if(this.currentPage>1){
this.currentPage--
}
},
change2(){
if(this.currentPage < this.pageCount){
this.currentPage++
}
}
}
}
</script>
<style scoped>
.pdf-set{
display: inline-block;
height:800px;
width:500px;
}
</style>
实例二 多页显示
<template>
<div class="about">
<div>
<pdf
v-for="i in numPages"
:key="i"
:src="src"
:page="i"
class="pdf-set"
></pdf>
</div>
</div>
</template>
<script>
import pdf from 'vue-pdf'
export default {
components:{
pdf
},
name: 'HelloWorld',
data(){
return{
src:pdf.createLoadingTask(origin+'/file/数据结构与算法JavaScript描述.pdf'),
numPages: undefined
}
},
mounted(){
this.src.then(pdf => {
this.numPages = pdf.numPages;
});
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
.pdf-set{
display: inline-block;
text-align: center;
width:60%;
}
</style>
so easy