pdf.js 使用小结
序
pdf.js 是一款可以在线预览 pdf 文档的插件,虽然目前大部分浏览器中都可以使用 iframe 直接浏览 pdf,但是这种方式就难以对 pdf 的显示进行配置。
所以需要用到可以进行调整的 pdf 显示插件 pdf.js
下载
pdf.js 的官网地址:http://mozilla.github.io/pdf.js/
虽然可以在 pdf.js 官网或者 GitHub 中下载下来 pdf.js。但是此时的 pdf.js 仍需要我们去进行构建才能愉快的进行使用
所以可以去网上直接寻找已经构建完成的 pdf.js 包进行导入使用。
我在码云上存放了一个构建好的 pdf.js 压缩包,这也是我从网上找到的,地址:https://gitee.com/wzckongchengji/pdfjs-warehouse
解压后:
使用时注意 generic 文件夹下 web 文件夹下 viewer.js 文件,此文件非常重要。
首先确定其中 DEFAULT_URL 是否为空,不然之后给 viewer.html 赋上需要展示的 pdf 文件地址时会出错
接下来就可以进行使用了
调用时可以直接使用 iframe 进行调用 viewer.html 文件,src 的地址为相对路径,当然,如果真正发布运行了,在服务器上可以使用绝对路径 src="./pdf2/generic/web/viewer.html?file=" + 文件地址
效果:
此时,已经可以做到简单使用 pdf.js 了,但是这样就足够了吗?不,这得看需求了!
使用调整
一
有时在服务器上不允许访问 properties 文件,这就会影响到 pdf.js 的功能了,在 web 文件夹下的 locale 文件夹中存在着各国语言文件,这些文件都是 properties 类型的,一旦不能使用就会影响到 pdf.js 的基本功能,此时我将这些文件的后缀改为 txt,然后在 viewer.html 将 locale.properties 引用也更改为 locale.txt。
使用此种方法后,及时服务器不允许 properties 文件访问也可以了,将 properties 文件改为 txt 文件也不影响 pdf.js 功能的使用。
二
pdf.js 打开的 pdf 文件默认宽度是自适应的,有时自适应宽度并不能满足所有 pdf,所以我将其设置为了适合页宽
可以在 viewer.js 中设置一条 var DEFAULT_SCALE = 'page-width';
pdf.js 的宽度选择内容
三
pdf.js 中需要一些字体库的协助,pdf 中部分字体如果没有字体库将无法在 pdf.js 中显示,字体库存放在 cmaps 文件夹下
字体库中文件格式为 bcmap 文件,如果服务器不支持此种类型文件,可以在 web.config 中添加
<mimeMap fileExtension=".bcmap" mimeType="image/svg+xml" />
此时不能再使用将 bcmap 后缀改为 txt 的方式
关于 pdf.js 的使用需求其实还有很多,需要不断的进行摸索
版权声明: 本文为 InfoQ 作者【空城机】的原创文章。
原文链接:【http://xie.infoq.cn/article/2b0f19163b58cd8f351f5d429】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论