写点什么

pdf.js 使用小结

用户头像
空城机
关注
发布于: 2021 年 04 月 20 日
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="  +  文件地址

<body>	<div id="pdfjs">		<iframe style="width:600px;height:500px"		src="./pdf2/generic/web/viewer.html?file=../../../PlayerAPI_v1.0.6.pdf">		</iframe>	</div></body>
复制代码

效果:

pdf.js文件夹


pdf显示


此时,已经可以做到简单使用 pdf.js 了,但是这样就足够了吗?不,这得看需求了!


使用调整

有时在服务器上不允许访问 properties 文件,这就会影响到 pdf.js 的功能了,在 web 文件夹下的 locale 文件夹中存在着各国语言文件,这些文件都是 properties 类型的,一旦不能使用就会影响到 pdf.js 的基本功能,此时我将这些文件的后缀改为 txt,然后在 viewer.html 将 locale.properties 引用也更改为 locale.txt。

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 的使用需求其实还有很多,需要不断的进行摸索


发布于: 2021 年 04 月 20 日阅读数: 28
用户头像

空城机

关注

曾经沧海难为水,只是当时已惘然 2021.03.22 加入

业余作者,在线水文 主要干前端的活,业余会学学python 欢迎各位关注,互相学习,互相进步

评论

发布
暂无评论
pdf.js使用小结