使用Vue3+PDF.js实现PDF预览功能

 更新时间:2022年12月24日 10:25:02   作者:YanaDH  
项目中有一个需要预览下载pdf的需求,网上找了很久,决定使用 pdf.js 完成,下面这篇文章主要给大家介绍了关于使用Vue3+PDF.js实现PDF预览功能的相关资料,需要的朋友可以参考下

1 前言

PDF.js 官网

本文使用的 PDF.js 版本为:v3.0.279

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

# 使用 npm 形式在项目中引入 PDF.js 依赖
npm i pdfjs-dist

效果预览

2 PDF 预览测试

2.1 下载 PDF.js

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

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 // 暗色

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

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

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

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

4 移除部分按钮

4.1 简单按钮移除

例:移除[打印]按钮

4.2 复杂按钮移除

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

5 错误处理

5.1 跨域报错

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

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

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

总结

到此这篇关于使用Vue3+PDF.js实现PDF预览功能的文章就介绍到这了,更多相关Vue3 PDF.js实现PDF预览内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue实现表格合并与拆分的示例代码

    Vue实现表格合并与拆分的示例代码

    在Vue应用程序中,表格是一个非常常见的组件,在这篇文章中,我们将介绍如何在Vue中进行表格的合并和拆分,感兴趣的小伙伴可以了解一下
    2023-06-06
  • Vue实现动态路由导航的示例

    Vue实现动态路由导航的示例

    本文主要介绍了Vue实现动态路由导航的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Vue编译器AST抽象语法树源码分析

    Vue编译器AST抽象语法树源码分析

    这篇文章主要为大家介绍了Vue编译器AST抽象语法树源码分析详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • vue elementui form表单验证的实现

    vue elementui form表单验证的实现

    这篇文章主要介绍了vue elementui form表单验证的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • vue3的二维码组件vue3-next-qrcode

    vue3的二维码组件vue3-next-qrcode

    这篇文章主要为大家介绍了vue3的二维码组件vue3-next-qrcode示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • vue.js数据绑定的方法(单向、双向和一次性绑定)

    vue.js数据绑定的方法(单向、双向和一次性绑定)

    本篇文章主要介绍了vue.js数据绑定的方法(单向、双向和一次性绑定),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • Vue.js结合bootstrap实现分页控件

    Vue.js结合bootstrap实现分页控件

    这篇文章主要为大家详细介绍了Vue.js 合bootstrap实现分页控件的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • Vue首屏加载过慢的优化方法

    Vue首屏加载过慢的优化方法

    Vue 应用在首屏加载时速度过慢,通常与以下问题有关:打包文件过大、网络请求过多、资源加载过慢,针对这些问题,本文给大家介绍了Vue首屏加载过慢的优化方法,需要的朋友可以参考下
    2025-01-01
  • Vue2.0 给Tab标签页和页面切换过渡添加样式的方法

    Vue2.0 给Tab标签页和页面切换过渡添加样式的方法

    下面小编就为大家分享一篇Vue2.0 给Tab标签页和页面切换过渡添加样式的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • vue如何对一个数据过滤出想要的item

    vue如何对一个数据过滤出想要的item

    这篇文章主要介绍了vue如何对一个数据过滤出想要的item问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10

最新评论