用pdfjs-dist实现pdf预览功能

<template>
  <div class="index">
    <div class="indexbox">
      <div class="contentbox">
        <div class="content" v-for="(item,index) in startFile" :key="index">
          <canvas class="canvas" :id="'canvas'+`${index}`"></canvas>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
//npm install --save pdfjs-dist@1.7.225
import {PDFJS} from "pdfjs-dist";
PDFJS.workerSrc = "/pdf.worker.min.js";
PDFJS.cMapUrl = "/cmaps/";
PDFJS.cMapPacked = true;
</script>

    // 预览多个pdf文件
    allPdfViews(arr){
      arr.forEach((item,index) => {
        let currenturl = item;
        let objectURL = URL.createObjectURL(currenturl)
        this.pdf(objectURL,"canvas" + index)
        .then(()=>{})
        .catch((err)=>{
          console.log(err);
        })
      });
    },
    // pdf是否有密碼
    // 1 => 未输入密码 2 => 密码错误  正确則直接跳出
    checkoutPassword(password, reason){
      this.password = password;
			if (reason == 1) {
        console.log();
			}
			if (reason == 2) {
        console.log();
			}
    },
    // pdf (展示第一頁內容)
    pdf(url,id){
      return PDFJS.getDocument(url,null,this.checkoutPassword,null)
      .then((pdf)=>{
        console.log(pdf);
        pdf.getPage(1).then((page)=>{
            let viewport = page.getViewport(1.5);
            let canvas = document.getElementById(id);
            let context = canvas.getContext("2d");
            canvas.height = viewport.height;
            canvas.width = viewport.width;
            let renderContext = {
              canvasContext: context,
              viewport: viewport,
						};
            page.render(renderContext);
        });
      })
      .catch();
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值