H5预览PDF的坑

安装 npm install --save vue-pdf

具体代码块:

   <div class="detail" v-show="preview">
      <div class="pdfTop">
        <div class="left" @click="goBack"></div>
        <div style="font-size: 16px" class="textpdf">{{ name }}</div>
      </div>
      <div class="pdf" v-show="fileType === 'pdf'">
        <div style="overflow: hidden" class="pdfbox">
          <pdf :src="preview" :page="currentPage" @num-pages="pageCount = $event" @page-loaded="currentPage = $event" @loaded="loadPdfHandler"></pdf>
        </div>
        <p class="arrow">
          <span @click="changePdfPage(0)" class="turn" :class="{ grey: currentPage == 1 }">上一页</span>
          {{ currentPage }} / {{ pageCount }}
          <span @click="changePdfPage(1)" class="turn" :class="{ grey: currentPage == pageCount }">下一页</span>
        </p>
        <div class="preview-btn" @click="preview = null">关闭预览</div>
      </div>
    </div>
//主要代码   
// 上下滚动pdf加载
    loadPdf(videoUrl) {//videoUrl后端返回的PDF地址
     //开始用的这个代码有问题移动端提示this.preview没有promise这个方法,所以换了一种方法
      // this.preview.promise.then((pdf) => {
      //   console.log('pdf', pdf)
      //   if (pdf && pdf._pdfInfo.numPages) {
      //     this.$nextTick(() => {
      //       this.numPages = pdf._pdfInfo.numPages // pdf总页数
      //     })
      //   }
      // })
      this.vuePdf = require('vue-pdf')
      let CMAP_URL = 'https://unpkg.com/pdfjs-dist@2.0.943/cmaps/'
      this.vuePdf.default.createLoadingTask)
      this.preview = this.vuePdf.default.createLoadingTask({
        cMapUrl: CMAP_URL,
        cMapPacked: true,
        url: videoUrl
      })
      this.currentPage = 1
    }


基本上就可以直接用了(自己调以下样式就好了)

中途出现了一个坑就是后端给我返回的是http形式的pdf,而我的项目是https的导致在本地运行的时候pdf正常显示,移动端就一片空白。找了半天问题。呜呜呜呜呜害我换了pdf.js又换了iframe都有这个问题

统一一下http形式就可以了。

感谢以下博主:

移动端实现预览pdf - 简书

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值