安裝
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>