Android 上预览 PDF 文件
程序员文章站
2022-07-02 11:06:22
使用 WebView 配合 pdf.js 在 Android 上显示 PDF 文件 ......
最近在 手机上要显示 pdf 文件,在搜索引擎上找到了很多方案,大体上有以下几种:
- 使用提供的在线服务,例如 google 文档预览服务,mwebview.loadurl(""+ pdfurl);
- 使用 androidpdfviewer,这是一个 github 上开源的库,除了体积大点别的都挺好, https://github.com/barteksc/androidpdfviewer
- 使用 moliza 开源的 pdf.js 这个库是很强大的,配合 webview ,可以支持预览,缩放,翻页等等功能
- 使用 腾讯浏览服务
我是选择了 pdf.js 这个库,使用 webview 配合 h5 页面,可以做到随意的自定义,并且体积很小,放在服务器的话就更小了。
- 使用资源:
- 版本 版本是 2.3.200
在这里记录下使用的过程也方便后来者。
考虑到网络不稳定的情况,所以我把 js 库下载下来了,不介意的可以直接使用网络库
刚开始使用时,直接使用提供的 api 创建 canvas ,每一页创建一个 canvas 然后排列下来,因为有其他的内容要显示。
开发测试的时候因为文件小,并且是在电脑上浏览的没有发现什么问题,在手机上测试的时候使用了一个稍微大点的文件,内存立马就爆了。
因为是在加载完成后,每页都创建一个 canvas 显示,没有做到逐页加载,也没有做任何循环使用和销毁的处理,内存就爆了。
在 pdf.js 的例子里看到了在手机上使用的例子,就改了改,它这个做到了循环使用 canvas,并且是逐页加载。
修改之后在手机上使用 32m 的文件轻松无压力。
简单写了个 demo :https://github.com/skymxc/example/tree/master/displaypdf
assets 目录是修改后的页面。
显示网络文件还是要下载到本地才可以,因为跨域访问的限制问题。
end
下一篇: 前端基础CSS篇之一