前言:項目中有一個需要預覽下載pdf的需求,網上找了很久,決定使用 pdf.js 完成。
第一步: 首先肯定是導入插件,我是從官網直接下載,鏈接:點擊打開鏈接,注意需要放在static文件目錄下
注意:這裏面有核心的pdf.js和pdf.worker.js,以及展示pdf的viewer頁面把它作爲靜態資源來編譯,基本想要的build和web這兩個重要文件夾的東西都正常編譯。當然你可以可以npm install一下,整個文件放在static目錄下的不好地方就是打包會很大喲,但是比較方便。
第二步:使用pdf.js(即通過 iframe 標籤或 window.open() 方法打開 web/viewer.html)
注意:我們這樣要顯示的是服務器的pdf或者文件流(主要是文件流)
1. 通過 iframe 嵌套打開pdf(src='/static/pdf/web/viewer.html?file=' + 服務器 pdf 文件地址) ==>> 文件形式
2. 通過 window.open() 打開服務器返回的文件流 ==>> 我使用的
encodeURI() 把字符串編碼爲 URI ==>> 不會對:/?&等uri中起分割作用的字符進行編碼;
encodeURIComponent() 把字符串編碼爲 URI 組件
注意:
1. pdf.js是不支持跨域文件加載的 直接加載是不會成功的。會報 “file origin doesnot match viewer”錯誤。 所以我們得改變一下源碼: ==>> 註銷 viewer.js 的1565行即可
==>> 可搜索 :throw new Error('file origin does not match viewer\'s');
2. 主要實現方法:將文件地址或文件流 傳入到 web/viewer.html 這個文件中
參考博客:https://blog.csdn.net/shentibeitaokong/article/details/80011900 ==>> 很詳細
https://blog.csdn.net/xinlingdexueba/article/details/79555678 ==>> 簡潔明瞭
https://www.jianshu.com/p/242525315bf6 ===>> 報錯情況
文章僅爲本人學習過程的一個記錄,僅供參考,如有問題,歡迎指出!
對博客文章的參考,若原文章博主介意,請聯繫刪除!請原諒