之前碰到一个需求,需要在手机 APP 中显示 pdf 文件。经过调研发现,在电脑上的浏览器如 chrome、safari等,可以直接显示 pdf 文件。由此联想到,在 APP 中能否通过浏览器来加载显示 pdf 文件呢?最后经过测试发现:
iOS 的 WebView 可以直接加载 pdf 文件并显示出来;
Android 的 WebView 不支持;
在 iOS 中有电子签名的 pdf 文件,关于有电子签名的地方无法显示;
我们需要显示的 pdf 文件基本上都是电子合同相关的 pdf 文件,也就是说基本上都包含了电子签名,典型的如电子发票上的公章。那么怎么实现该功能呢?首先我们排除掉采用原生解析 pdf 文件的方式,网上找了下解析 pdf 文件的第三方开源库,这些库都很大,动则 20M 以上,并且稳定性也不保障,显然对 APP 来说是不划算的。
最后,我们采用了 pdf.js 开源库,通过 WebView 的方式来显示 pdf 文件。
1. 自己构建 pdf.js
1.下载源码到本地:
git clone https://github.com/mozilla/pdf.js.git
cd pdf.js
2.安装 gulp 工具
npm install -g gulp-cli
3.运行本地 demo
npm install
gulp server
4.构建 pdf.js 文件
//通用构建
gulp generic
//混淆压缩
gulp minified
我