需求:简单说~~有两个pdf文件需在h6上展示,通过点击按钮切换不同文件的显示
注:
1.vue-pdf默认展示首页,我这里的需求是通过滑动展示所有页面,这里使用的v-for遍历。有多少页就加载了多少个pdf组件。
2.pdf文件存在跨域问题,这个需要后端同学支持。
3.demo上的pdf文件只有一页,测试多页展示,自己改用多页pdf文件即可
<template>
<div class="pdf_wrap">
<div class="pdf_list">
<!-- src:pdf地址,page: 当前显示页 -->
<pdf v-for="i in numPages" :key="i" :src="src" :page="i" > </pdf>
</div>
<Button type="info" @click="loadPdf(pdfUrl1)">
文件1
</Button>
<Button type="info" native-type="submit" @click="loadPdf(pdfUrl2)">
文件2
</Button>
</div>
</template>
<script>
import pdf from 'vue-pdf'
import { Button } from 'vant'
export default {
components: {
pdf, Button
},
data () {
return {
src: '',
numPages: undefined,
pdfUrl1: 'https://clinic-trial-attachments.oss-cn-beijing.aliyuncs.com/output/demo.pdf/1.pdf',
pdfUrl2: 'https://clinic-trial-attachments.oss-cn-beijing.aliyuncs.com/output/123demo'
}
},
mounted () {
this.loadPdf(this.pdfUrl1)
},
methods: {
loadPdf (url) {
this.src = pdf.createLoadingTask(url)
this.src.promise.then(pdf => {
this.numPages = pdf.numPages // 这里拿到当前pdf总页数
})
}
}
}
</script>
<style scoped>
.pdf_wrap {
background: #fff;
height: 100vh
}
.pdf_list {
height: 80vh;
overflow: scroll;
}
button {
margin-bottom: 20px;
}
</style>
总结
到此这篇关于vue中使用vue-pdf的方法详解的文章就介绍到这了,更多相关vue使用vue-pdf内容请搜索亿速云以前的文章或继续浏览下面的相关文章希望大家以后多多支持亿速云!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。