vue使用pdf.js預(yù)覽pdf文件的方法
我們在頁面進(jìn)行pdf預(yù)覽的時候,由于有些文件不能夠進(jìn)行打印和下載,這時候我們使用window自帶的pdf就很難滿足客戶的需求,因此需要另外的辦法來支持我們進(jìn)行特殊條件的pdf文件預(yù)覽,這里我采用引入pdf.js文件的形式來達(dá)到目的。
第一步:下載pdf.js
引入pdf.js文件
地址如下:http://mozilla.github.io/pdf.js/getting_started/

第二步,vue引入
我這里是把下載下來的文件放在了根目錄的piblic下

第三步,使用
主要是地址"/build/generic/web/viewer.html?file="+href,href為請求后端返回的文件路徑或者后端返回文件流前段解析后生成的文件路徑,前面拼接上/build/generic/web/viewer.html?file=,地址為自己引入pdf.js文件的路徑,也可以直接這樣寫/build/generic/web/viewer.html,他會直接去找。下面我使用的是前段解析文件流生成地址預(yù)覽的。
預(yù)覽方法window.open("/build/generic/web/viewer.html?file="+href);
axios({
method: 'get',
url:url,
headers: {
"token":auth,
},
responseType: 'blob',
}).then(response => {
type_ = type_.toLowerCase();
if (type_ == "docx") {
that._type_ = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
} else if (type_ == "doc") {
that._type_ = "application/msword"
} else if (type_ == "gif") {
that._type_ = "image/gif"
} else if (type_ == "jpeg" || type_ == "jpg") {
that._type_ = "image/jpeg"
} else if (type_ == "png") {
that._type_ = "image/png"
} else if (type_ == "pdf") {
that._type_ = "application/pdf"
} else if (type_ == "txt") {
that._type_ = "text/plain;charset=utf-8'"
} else if (type_ == "xls") {
that._type_ = "application/vnd.ms-excel"
} else if (type_ == "xlsx") {
that._type_ = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
}else if (type_ == "zip") {
that._type_ = "application/zip"
} else if (type_ == "ppt") {
that._type_ = "application/vnd.ms-powerpoint"
} else if (type_ == "pptx") {
that._type_ = "application/vnd.openxmlformats-officedocument.presentationml.presentation"
}
if(type_ == "pdf"){
var blob = new Blob([response.data], { type: that._type_ })
var href = window.URL.createObjectURL(blob); //創(chuàng)建下載的鏈接
window.open("/build/generic/web/viewer.html?file="+href);
}
})
最后
如果你想要的禁掉pdf文件的下載、打印等功能,最簡單的方法是,找的自己導(dǎo)入文件里的viewer.html,路徑為build下的generic文件夾下的web里的viewer.html,如下:

在這個html里找到對應(yīng)下載的dom直接display:none就可以,切記不可以注掉,注掉會報錯。如下,紅色框中,一個是下載一個是打印,直接隱藏就可以。

如果有人問這樣也不安全,那可以和客戶商量不在頁面展示,因為只要頁面可以看到的東西,截屏也可以截下來,注定是不安全的。
到此這篇關(guān)于vue使用pdf.js來進(jìn)行pdf預(yù)覽的文章就介紹到這了,更多相關(guān)vue使用pdf.js預(yù)覽pdf內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Vue3+TypeScript項目中安裝PDF.js詳細(xì)的步驟
- vue中pdf.js的使用之pdf顯示、跳轉(zhuǎn)指定頁面及高亮關(guān)鍵詞
- Vue中使用pdf.js實現(xiàn)PDF文檔展示功能實例
- vue3使用pdf.js來預(yù)覽文件的操作步驟(本地文件測試)
- vue如何使用pdf.js實現(xiàn)在線查看pdf文件功能
- Vue使用PDF.js實現(xiàn)瀏覽pdf文件功能
- 使用Vue3+PDF.js實現(xiàn)PDF預(yù)覽功能
- Vue 集成 PDF.js 實現(xiàn) PDF 預(yù)覽和添加水印的步驟
- vue實現(xiàn)在線預(yù)覽pdf文件和下載(pdf.js)
- Vue中使用PDF.js的實戰(zhàn)指南
相關(guān)文章
vue實現(xiàn)拖動調(diào)整左右兩側(cè)容器大小
這篇文章主要為大家詳細(xì)介紹了vue實現(xiàn)拖動調(diào)整左右兩側(cè)容器大小,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03
vue中el-tree結(jié)合el-switch實現(xiàn)開關(guān)狀態(tài)切換
本文主要介紹了vue中el-tree結(jié)合el-switch實現(xiàn)開關(guān)狀態(tài)切換,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-12-12
Vue監(jiān)聽事件實現(xiàn)計數(shù)點擊依次增加的方法
今天小編就為大家分享一篇Vue監(jiān)聽事件實現(xiàn)計數(shù)點擊依次增加的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09
vue中transition組件在項目中運(yùn)用小結(jié)
這篇文章主要介紹了vue中transition組件在項目中運(yùn)用,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-12-12
安裝@vue/cli 報錯npm WARN deprecated request
這篇文章主要介紹了安裝@vue/cli 報錯npm WARN deprecated request@2.88.2問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03
vue 實現(xiàn)單選框設(shè)置默認(rèn)選中值
今天小編就為大家分享一篇vue 實現(xiàn)單選框設(shè)置默認(rèn)選中值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
Vue實現(xiàn)動態(tài)創(chuàng)建和刪除數(shù)據(jù)的方法
下面小編就為大家分享一篇Vue實現(xiàn)動態(tài)創(chuàng)建和刪除數(shù)據(jù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03

