vue中使用vue-pdf实现多个pdf文件的循环输出,且每个PDf文件有自己的分页

问题描述:页面展示多个pdf文件,且每个PDF文件有自己的分页,分页之间不会互相干扰。

问题解决方案:将分页设置为一个数组,先定义一个空的数组,然后获取总文件个数进行循环,每循环一次,在空数组中push当前页,总页数这些变量,然后在页面进行渲染。

1. 定义空数组

data () {
    return {
      pathList: [],
      currentArr: [],
      fileType: 'pdf', // 文件类型
      src: '', // pdf文件地址
    }
  },

2. 获取总的文件个数进行循环

for (var i = 0; i < resp.data.data.length; i++) {
              this.currentArr.push({
                currentPage: 0, // pdf文件页码
                pageCount: 0 // pdf文件总页数
              })
            }

3.进行页面渲染

<pdf :src="item.Path" :page="currentArr[index].currentPage" @num-pages="currentArr[index].pageCount=$event" @page-loaded="currentArr[index].currentPage=$event" @loaded="loadPdfHandler"></pdf>
            <p class="arrow">
              <span @click="changePdfPage(0,index)" class="turn" :class="{grey: currentArr[index].currentPage==1}">上一页</span>
              <span>{{currentArr[index].currentPage}} / {{currentArr[index].pageCount}}</span>
              <span @click="changePdfPage(1,index)" class="turn" :class="{grey: currentArr[index].currentPage==currentArr[index].pageCount}">下一页</span>
            </p>

4.分页的点击事件

changePdfPage (val, index) {
      if (val === 0 && this.currentArr[index].currentPage > 1) {
        this.currentArr[index].currentPage--
      }
      if (val === 1 && this.currentArr[index].currentPage < this.currentArr[index].pageCount) {
        this.currentArr[index].currentPage++
      }
    },
    // pdf加载时
    loadPdfHandler (e) {
      // this.currentPage = 1 // 加载的时候先加载第一页
      for (var i = 0; i < this.currentArr.length; i++) {
        this.currentArr[i].currentPage = 1
      }
    },

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值