html中使用pdf.js在网页中加载显示pdf文件
在日常的项目当中,有一个需求就是把我们的PDF显示在html当中,网上有很多方法,但由于浏览器兼容问题,很多方法都不是很完美。接下来我们来讲一下利用pdf.js来解决这个问题,目前我认为是比较完美的。它的使用方法非常简单,好用!
接下来一起来看看吧。
目前随着浏览器技术发展的不断成熟与强大,大部分的浏览器都支持直接把PDF文件拖到浏览器中显示,最方便的是这个操作不需要额外的插件支持。但是不同的浏览器加载显示PDF的效果不同。这时就需要专门的JS插件来处理。Mozilla开源了一个插件pdf.js,无需任何本地支持就可以在所有主流的浏览器上显示PDF文档,使用起来十分的方便。唯一的要求就是浏览器必须支持HTML5。
一、pdf.js 简介
它是Mozilla开源一个插件pdf.js,大家可以去官方网站去下载下来。
下载后得到一个压缩包pdfjs-2.0.943-dist.zip(可能你下载的版本不一样)
其中:
build目录中pdf.js和pdf.worker.js是核心文件,pdf.js可以实现在线预览pdf文档,
核心部分是pdf.js和pdf.worker.js,一个负责API解析,一个负责核心解析
web目录中viewer.html是pdf查看器
二、pdf.js实现预览的原理:
1.首先把这个压缩过后的文件传到你的服务器当中
2.通过访问viewer.html的方式来查看PDF,这里要注意的是需要传递一个重要的参数【file】,设置为要显示的pdf文件的路径
例如:
http://localhost/pdfjs-2.0.943-dist/web/viewer.html?file=http://localhost/xxx.pdf(这里是你的pdf路径)
这样就可以访问你的PDF了,
三、嵌入在网页中
可以通过iframe来嵌入,因为所有的浏览器都支持iframe
这样访问你的网页就可以看了。
注意事项:
四、跨域设置的问题
如果PDF文件与网站部署在一起,则不存在跨域。如果PDF在网站之外,则涉及到跨域问题。就是说你的PDF文件与你的网站不在同一个服务器上,这里会提示错误,如果在同一个服务器上请忽略这一步。
解决方法如下:
打开viewer.js文件,注释掉以下内容。
五、汉化问题(一般高版本会自动判断显示为中文,如果是英语刚往下看,否则请忽略)
viewer.html 查看器的菜单功能按钮的显示都是英文的。
在压缩包下/web/local目录下列出了很多种语言的资源包,找到 zh-CN。里面包含了对应的汉化中文的信息
打开viewer.html,对照一下中文包修改其中所有菜单的 title 与 span 的内,全部修改完成后,保存,再次在浏览器中查看,菜单已经显示为中文了。