vue-pdf插件实现PDF预览功能

5 篇文章 1 订阅
2 篇文章 0 订阅

在做的Vue项目中,遇到了要上传文件,其中pdf要实现预览,网上查到vue-pdf插件可实现该功能。实现步骤如下:

1.安装插件

npm install --save vue-pdf

2.简单的demo 完整代码

<template>
  <div>
    <a @click="handlePreview()" alt="查看文件" class=""><a-icon type="eye" /></a>
    <a-modal width='1000px' :visible="previewPdfVisible" @cancel="handlePdfCancel" @ok="handlePdfCancel">
      <pdf 
        ref="pdf"
        :src="url"
      >
        </pdf>
    </a-modal>
    
  </div>
  
</template>
<script>
  
  export default {
    components:{
        pdf
    },
    data(){
      return {
          url:"",
      }
    },
    methods:{
      //查看文件
      handlePreview(){
        let fileUrl='http://10.4.4.83:9999/sys/common/static/temp/1645755049088.pdf';
          this.previewPdfVisible=true;
          this.url=fileUrl;
      },
      
    }
  }
</script>

<style>
  
</style>

以上只能展示一页

3.多页展示

<template>
  <div>
    <a @click="handlePreview()" alt="查看文件" class=""><a-icon type="eye" /></a>
    <a-modal width='1000px' :visible="previewPdfVisible" @cancel="handlePdfCancel" @ok="handlePdfCancel">
      <pdf 
        ref="pdf"
        v-for="i in pdfNumPages"
        :key="i"
        :page="i"
        :src="previewPdf">
      >
        </pdf>
    </a-modal>
    
  </div>
  
</template>
<script>
  import pdf from 'vue-pdf';
  export default {
    components:{
        pdf
    },
    data(){
      return {
          previewPdfVisible:false,
          previewPdf:"",
          pdfNumPages: null, // pdf 总页数
      }
    },
    methods:{
      handlePdfCancel(){
        this.previewPdfVisible = false;
      },
      //查看文件
      handlePreview(){
        let fileUrl='http://10.4.4.83:9999/sys/common/static/temp/结算中心_1645755049088.pdf';
          this.previewPdfVisible=true;
          this.previewPdf=fileUrl;
          //计算pdf页码总数
          let loadingTask = pdf.createLoadingTask(this.previewPdf)
          loadingTask.promise.then(pdf => {
            this.pdfNumPages = pdf.numPages
          }).catch(err => {
            console.error('pdf 加载失败', err);
          })
      },
      
    }
  }
</script>

<style>
  
</style>

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值