pdf.jsMozilla開源的一項用於在HTML5平台上顯示pdf文檔的技術,Mozilla自己的Firefox瀏覽器也用了pdf.js來預覽pdf,可見應該是一個比較成熟穩定的方案(btw,chrome用的是foxit的技術,國人驕傲啊)。當然類似的方案有很多,並且大多都提供了豐富的api,如果你仔細讀文檔/api,可能會有好的收獲,但是Mozilla同時把在Firefox內的查看器也一道開源了,對於大部分定制性不強,只需要瀏覽的使用場景來說,似乎可以直接“拿來主義”,本文就說的是如何直接使用這個自帶的viewer
前提,既然是基於HTML5的方案,那么瀏覽器兼容性是個大問題,官方盡可能地做了兼容(通過compatibility.js文件),但是仍然無法支持IE9以下的瀏覽器,詳見此,IE9以下要支持,要么換方案,要么直接在不支持的情況下顯示下載鏈接吧。
1,下載源碼
git clone https://github.com/mozilla/pdf.js.git pdfjs
cd pdfjs
2, 編譯
需要node環境
node make generic
這會在你的根目錄下生成一個build文件夾,目錄結構:
/
generic
build
pdf.js
pdf.worker.js
web
...
其中,build路徑下是主程序,web路徑下是查看器程序
3, 運行網站
node make server
你也可以用發布在自己的任意web服務器,用上述命令可以以當前目錄pdfjs為根目錄伺服一個網站,你可以順便查看下examples里面的內容,以及web(這就是Mozilla的pdf查看器所在)里面的內容。
當然,你也可以直接跑到上一節生成的generic目錄下伺服一個網站,這會讓事情顯得簡單很多。總之,網站部署好后,我們只要找到web路徑下的view.html靜態文件,然后傳入file=xxx.pdf形式的參數即可,比如:
http://myapp.mycompany.com/web/viewer.html?file=http://myapp.mycompany.com/my-PDF-file.pdf
(同站文件用相對路徑當然也沒問題)
4, 修改部署路徑
如果你的項目部署並不是generic/build&web(肯定大多數不是),你只需要更改·文件里面的pdf.js路徑為你的真實路徑,
<script type="text/javascript" src="../build/pdf.js"></script>
以及·里面的‘pdf.worker.js’為你的真實路徑即可
PDFJS.workerSrc = '../build/pdf.worker.js';
