如何在vue中使用pdfjs預(yù)覽pdf文件
在寫(xiě)項(xiàng)目的過(guò)程中,偶爾會(huì)有使用到pdf的文件,當(dāng)我們想看pdf文件的時(shí)候,你的操作是不是先把pdf文件下載下來(lái),通過(guò)電腦安裝的專(zhuān)用于打開(kāi)pdf的軟件來(lái)查看pdf文件呢。如果有個(gè)需求說(shuō)不要讓用戶(hù)安裝軟件呢,畢竟還是有很多用戶(hù)不知道怎么安裝軟件或者這個(gè)東西需要什么東西才能打開(kāi)嘛。ok,有了這樣的需求那我們是不是也得去實(shí)現(xiàn)嘛,畢竟這理由咱也沒(méi)法反駁啊。
思考既然都提出來(lái)了,那就想想怎么使用咯。既然需要用到pdf。不知道有沒(méi)有關(guān)于js能夠操作的庫(kù)文件來(lái)幫我呢?果斷一百度,咱們今天的主角就來(lái)了:pdfjs。
庫(kù)目錄解析和下載既然有了方案,那就去研究研究了,首先需要去下載這個(gè)庫(kù)的文件,下載地址:點(diǎn)我下載。這個(gè)頁(yè)面會(huì)有兩個(gè),一個(gè)是兼容舊版的,大家可以根據(jù)自己的實(shí)際情況下載啊。
下載后的代碼結(jié)構(gòu)如下圖:
這里面有兩個(gè)文件夾:
build 這里面是pdf核心文件 web 例子使用方法有兩種使用方法,一種是通過(guò)核心庫(kù)文件自己去實(shí)現(xiàn)pdf的預(yù)覽,還有一種是通過(guò)給的例子去預(yù)覽pdf文件。這里呢就以給的例子來(lái)預(yù)覽pdf文件,如果大家有興趣可以去研究研究怎么用核心文件去實(shí)現(xiàn)咯。
文件位置首先我們需要將下載好的文件放到vue項(xiàng)目的static靜態(tài)目錄下,如下圖:
在需要用到的地方使用如下方式調(diào)用:
var url = encodeURIComponent(window.location.origin+’/other/202101/dc88623a-74c4-49c4-bc95-7e34d9cf6163.pdf’)window.open(window.location.origin + window.location.pathname+’static/pdfjs/web/viewer.html?file=’+url)
上面的pdf地址為自己放在本地的路徑,這里路徑可以為相對(duì)和絕對(duì)路徑,上面為絕對(duì)路徑
這時(shí)就可以看到如下效果啦:
如果這個(gè)pdf文件的地址和當(dāng)前下載的庫(kù)文件地址在相同的域下,應(yīng)該不會(huì)有太大問(wèn)題的,如果不同域下就需要解決跨域的問(wèn)題了。這里有個(gè)地方需要解決就是我們下載的庫(kù)文件,找到viewer.js文件中下面的內(nèi)容注釋?zhuān)?/p>
將上圖中紅色框框里面的內(nèi)容注釋。如果服務(wù)端給出的是下載地址,那么可以使用iframe嵌套來(lái)解決。
總結(jié)其實(shí)可以看到跨域的知識(shí)有時(shí)候還是很有用的,上面就用到了,我剛開(kāi)始弄的時(shí)候怎么都出不來(lái),后面發(fā)現(xiàn)跨域下載不下來(lái)。當(dāng)前還有更多的用法和問(wèn)題,歡迎大家提出來(lái)。
以上就是如何在vue中使用pdfjs預(yù)覽pdf文件的詳細(xì)內(nèi)容,更多關(guān)于vue中使用pdfjs預(yù)覽pdf文件的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. CSS3實(shí)例分享之多重背景的實(shí)現(xiàn)(Multiple backgrounds)2. XHTML 1.0:標(biāo)記新的開(kāi)端3. HTML5 Canvas繪制圖形從入門(mén)到精通4. XML解析錯(cuò)誤:未組織好 的解決辦法5. ASP基礎(chǔ)知識(shí)VBScript基本元素講解6. asp(vbscript)中自定義函數(shù)的默認(rèn)參數(shù)實(shí)現(xiàn)代碼7. 詳解CSS偽元素的妙用單標(biāo)簽之美8. 利用CSS3新特性創(chuàng)建透明邊框三角9. 使用Spry輕松將XML數(shù)據(jù)顯示到HTML頁(yè)的方法10. XML入門(mén)的常見(jiàn)問(wèn)題(四)
