美文网首页
Vue3 + PDF.js 实现 PDF 预览

Vue3 + PDF.js 实现 PDF 预览

作者: YanaDH | 来源:发表于2022-11-03 16:29 被阅读0次

    1 前言

    PDF.js 官网

    • 本文使用的 PDF.js 版本为:v3.0.279
    • 本文未使用 npm 形式在项目中引入 PDF.js 依赖,因为该形式引入的 PDF.js 需要自己写额外页面样式及按钮,而直接在官网下载可以使用 PDF.js 默认提供的 viewer ,不用再增加额外代码,即可实现 PDF 预览等功能
    # 使用 npm 形式在项目中引入 PDF.js 依赖
    npm i pdfjs-dist
    
    • 效果预览


      2022110301.png
      2022110302.png

    2 PDF 预览测试

    2.1 下载 PDF.js

    PDF.js 官网下载 PDF.js ,解压后放到 public/static 下

    2022110303.png

    2.2 window.open 直接打开

    // 默认打开 public/static/pdf/web/compressed.tracemonkey-pldi-09.pdf
    // 测试 pdf 有点大,第一次打开可能会有点慢,只要有进度条就是正常加载中
    window.open('static/pdf/web/viewer.html')
    // 传入 pdf 文件地址
    const fileUrl = 'xxx'
    window.open('static/pdf/web/viewer.html?file=' + fileUrl)
    

    2.3 弹框形式打开

    <el-dialog v-model="dialogVisible">
      <iframe :src="'static/pdf/web/viewer.html?file=' + fileUrl"
        style="width: 100%; height: 440px"
      ></iframe>
    </el-dialog>
    

    3 修改配置项

    3.1 修改主题色为暗色系

    修改 public/static/pdf/web/viewer.js

    AUTOMATIC: 0, // 跟随浏览器
    LIGHT: 1, // 亮色
    DARK: 2 // 暗色
    
    2022110304.png

    3.2 修改默认语言为简体中文

    修改 public/static/pdf/web/viewer.js


    2022110305.png

    3.3 打开 PDF 后默认跳转到某一页

    // 添加 #page=2 默认跳转到第二页
    window.open('static/pdf/web/viewer.html?file=' + fileUrl + '#page=2')
    

    4 移除部分按钮

    4.1 简单按钮移除

    例:移除[打印]按钮


    2022110306.png 2022110307.png 2022110308.png

    4.2 复杂按钮移除

    例:移除[文本]按钮,由于该按钮点击后会出现面板,所以除了移除当前按钮相关代码外,还要移除面板相关代码


    2022110309.png 2022110310.png 2022110311.png 2022110312.png

    5 错误处理

    5.1 跨域报错

    2022110313.png

    注释 public/static/pdf/web/viewer.js 代码


    2022110314.png

    5.2 默认语言为简体中文,但下载按钮仍显示为“Save”

    修改 public/static/pdf/web/viewer.html 第159、276行代码


    2022110315.png 2022110316.png 2022110317.png

    相关文章

      网友评论

          本文标题:Vue3 + PDF.js 实现 PDF 预览

          本文链接:https://www.haomeiwen.com/subject/ircutdtx.html