使用pdf.js展示pdf文件(亲测可用)

简单的实现方式

如果只是电脑端,可通过 iframe 标签嵌套预览

ios手机端可通过 a 标签包裹点击跳转预览(安卓端不行)

安卓电脑ios的通用方法

资料

老版本github地址

全版本地址

获取当前客户端类型

	judgeClient() {
      let client = ''
      if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) { // 判断iPhone|iPad|iPod|iOS
        client = 'iOS'
      } else if (/(Android)/i.test(navigator.userAgent)) { // 判断Android
        client = 'Android'
      } else {
        client = 'PC'
      }
      return client
    }

正式开始

下载及安装pdf.js插件

前往官方地址下载插件包 http://mozilla.github.io/pdf.js/
此链接可下载最新版本,不兼容老版本浏览器和苹果系统,若需在苹果展示则使用最上面老版本系统,或者下载右边的旧版浏览器版本(没有尝试过
在这里插入图片描述

引入项目

在public文件夹下新建pdfjs文件夹,将解压后的文件放进去

解压后的
在这里插入图片描述
放到项目中
在这里插入图片描述

使用

第一种方法(文件链接或者静态文件)

  1. 解决跨域问题

先解决pdfjs自带的跨域拦截:
新版本
找到/web/viewer.js,搜索 fileOrigin,并注释以下代码段
在这里插入图片描述
老版本
找到/web/viewer.js,搜索 if (origin !== viewerOrigin && protocol !== “blob:”) {,并注释以下代码段
在这里插入图片描述

  1. 使用iframe嵌入即可
file后携带需要展示的pdf链接

<iframe src="pdfjs/web/viewer.html?file=http://xxxx/file/xxxx.pdf" width="500" height="500"></iframe>

注意:
要展示的pdf必须和psf.js文件在同一个域名或者ip下

第二种方法

1、先创建个iframe标签,给定一个id
在这里插入图片描述
2、从后端获取blob形式的pdf文件,具体怎么获取和后端商定(思路,后端提供一个接口,参数为文件链接,前端带参文件链接请求接口后,接口返回此文件链接的blob形式的文件流。)
在这里插入图片描述
3、获取到blob形式的pdf文件后,添加到iframe中,完成
在这里插入图片描述

解决mac OS 的safari浏览器不兼容的问题

方法一

直接使用老版本,我测试使用老版本对项目暂无任何影响

方法二(使用老版本的pdfjs即可,这个方法概率性出现pdf按钮不显示的问题)

老版本和新版本同时引入,当请求页面是判断当前客户端类型,若是ios则使用老版本的pdf.js文件

在这里插入图片描述

最笨的代码示例

client是文章开头的方法获取的客户端类型

	<iframe
          v-if="item.url && item.url.split('.').pop().toLowerCase() === 'pdf' && client !== 'iOS'"
          :src="'pdfjs/new/web/viewer.html?file=' + item.url"
          allow="fullscreen"
          align="center"
          name="ifd"
          width="100%"
          scrolling="no"
          frameborder="0"
          type="application/pdf"
          height="700"/>
        <iframe
          v-else-if="item.url && item.url.split('.').pop().toLowerCase() === 'pdf' && client === 'iOS'"
          :src="'pdfjs/old/web/viewer.html?file=' + item.url"
          allow="fullscreen"
          align="center"
          name="ifd"
          width="100%"
          scrolling="no"
          frameborder="0"
          type="application/pdf"
          height="700"/>

参考文章

https://www.cnblogs.com/huihuihero/p/16892882.html

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
在Vue2中使用pdf.js可以通过以下步骤实现。首先,根据提供的引用,需要将pdf.js文件放在项目的static文件夹中的pdf文件夹中。然后,在Vue项目的components文件夹中新建pdf文件夹,并创建pdf-index.vue和pdf-index.js文件。在pdf-index.vue中可以使用页面引入来展示PDF文件,需要注意的是,pdfSrc需要使用encodeURIComponent方法转义。中可以找到pdf.js的下载地址。你可以从该地址下载pdf.js并按照readme中的说明进行配置和使用。的资料,pdf.js是一个备受推荐的插件来实现在Vue项目中展示PDF文件的功能。根据实现者的经验,通过使用gulp将下载的pdf.jspdf.worker.js生成可用文件,然后将它们放在合适的位置即可。中的方法进行配置和使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [vue中使用PDF.js](https://blog.csdn.net/m0_37296026/article/details/122540457)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [vue插件开发之使用pdf.js实现手机端在线预览pdf文档的方法](https://download.csdn.net/download/weixin_38696336/13459531)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值