PDF.js实现html页面读取pdf文件内容

项目中遇到要在HTML页面上读取PDF文档的内容,并显示在网页上。

pdf.js官网:pdf.js官网

本地附件:pdf.js

一.下载

1、下载至本地

2、创建PDF.js文件夹 并将刚解压的文件放入其中

二.将 PDF.js 文件夹 放到 项目服务器根目录下

小伙伴 可能会有点头晕 先跟着做 稍后解释

1.登录 项目服务器 

 

2.登录 服务器 后将 PDF.js 文件夹 拷贝 到 项目 服务器 的根目录

三. 使用 pdf.js 显示 pdf 文件

1.打开浏览器 新建一个 标签页 输入 你的项目服务器 地址

这里我用我的服务器 地址进行演示 10.0.0.5 

2.当 你访问 项目 服务器 根目录(10.0.0.5) 能够 看到 PDF.js 这个文件夹 说明 这一步已经完成了

3.在PDF.js 中 依次打开 web 文件夹 viewer.html 文件 (PDF.js/web/viewer.html)

4.随后会显示 截图上的 pdf 文件

5.在地址栏中 http://10.0.0.5/PDF.js/web/viewer.html?file=你的pdf地址

解释: 我这里显示的pdf文件 是服务器上本来 就有的测试文件 请看下图

如果 你的 地址栏 中 ? 后面 file = PDF地址  可以显示 pdf 那么 基本上成功了

四. 在项目中使用

 <iframe :src="http://10.0.0.5/PDF.js/web/viewer.html?file=PDF地址" width="100%" height="99%"></iframe>

问题:如果文件是远程服务器上的文件,会产生跨域,就会遇到如下错误

PDF.js v2.0.943 (build: dc98bf76)
信息:file origin does not match viewer's

控制台:Uncaught (in promise) Error: file origin does not match viewer's

如果需要加载远程服务器的pdf文件,远程服务器返回pdf文件流,然后在viewer.html的url后面添加file=http://127.0.0.1:8020/PDF/test,但是pdf.js不支持跨域请求,所以会报错:file origin does not match viewer’s,试了很多种方法仍然报错,所以简单粗暴的方法就是把viewer.js的判断远程地址的代码注释掉即可(1564~1566行)。

if (origin !== viewerOrigin && protocol !== 'blob:') {
        throw new Error('file origin does not match viewer\'s');
   }

 

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值