下載PDF.js(會附帶下載資源)
后面會附帶下載地址,其中包含兩個文件夾build和web文件夾,build文件夾是PDF.js核心文件,web下為展示PDF的視圖界面viewer.html;
在項目中要在線預覽PDF,進行以下步驟:
方法1:
新建一個html頁面,在頁面中使用iframe標簽,通過iframe標簽嵌套viewer.html,如果是只加載本地文件,在viewer.js修改默認的pdf文件路徑(DEFAULT_URL字段)即可。
<iframe src="web/viewer.html" width="100%" height="800px" id="Iframe"></iframe>
修改viewer.js的默認的pdf的文件路徑
var DEFAULT_URL = 'test.pdf';
方法2:
但是我們的需求往往不是加載一張靜止的PDF文件,所以我們通常用的比較多的是第二種方法加載遠程服務器返回pdf文件流,然后在viewer.html的url后面添加file=http://127.0.0.1:8088/PDF/test.pdf;
我在js代碼中是這樣使用的:
$("#Iframe").attr("src","https://sms.reyo.cn/pdfjs/web/viewer.html?file="+originUrl+"");
這樣就實現了預覽遠程服務器的文件流,但是pdf.js不支持跨域請求,所以會報錯:file origin does not match viewer’s,試了很多種方法仍然報錯,所以簡單粗暴的方法就是把viewer.js的判斷遠程地址的代碼注釋掉即可。
需要在viewer.js中注釋的代碼如下:
// if (origin !== viewerOrigin && protocol !== 'blob:') {
// throw new Error('file origin does not match viewer\'s');
// }
如果地址是流的方式,要編碼一下。
如:viewer.html?file=encodeURIComponent('https://sms.reyo.cn/test.pdf?token=asdfafasdfa&afs=afsdfds')
