欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue使用pdf.js預(yù)覽pdf文件的方法

 更新時(shí)間:2021年12月20日 14:41:19   作者:奔跑的哈密瓜  
在頁(yè)面進(jìn)行pdf預(yù)覽的時(shí)候,由于文件不能夠打印和下載很難滿足客戶的需求,接下來(lái)通過(guò)本文給大家介紹vue使用pdf.js來(lái)進(jìn)行pdf預(yù)覽,需要的朋友可以參考下

我們?cè)陧?yè)面進(jìn)行pdf預(yù)覽的時(shí)候,由于有些文件不能夠進(jìn)行打印和下載,這時(shí)候我們使用window自帶的pdf就很難滿足客戶的需求,因此需要另外的辦法來(lái)支持我們進(jìn)行特殊條件的pdf文件預(yù)覽,這里我采用引入pdf.js文件的形式來(lái)達(dá)到目的。

第一步:下載pdf.js  

    引入pdf.js文件

    地址如下:http://mozilla.github.io/pdf.js/getting_started/

    

第二步,vue引入

  我這里是把下載下來(lái)的文件放在了根目錄的piblic下

第三步,使用

  主要是地址"/build/generic/web/viewer.html?file="+href,href為請(qǐng)求后端返回的文件路徑或者后端返回文件流前段解析后生成的文件路徑,前面拼接上/build/generic/web/viewer.html?file=,地址為自己引入pdf.js文件的路徑,也可以直接這樣寫(xiě)/build/generic/web/viewer.html,他會(huì)直接去找。下面我使用的是前段解析文件流生成地址預(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文件的下載、打印等功能,最簡(jiǎn)單的方法是,找的自己導(dǎo)入文件里的viewer.html,路徑為build下的generic文件夾下的web里的viewer.html,如下:

  

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

如果有人問(wèn)這樣也不安全,那可以和客戶商量不在頁(yè)面展示,因?yàn)橹灰?yè)面可以看到的東西,截屏也可以截下來(lái),注定是不安全的。

到此這篇關(guān)于vue使用pdf.js來(lái)進(jìn)行pdf預(yù)覽的文章就介紹到這了,更多相關(guān)vue使用pdf.js預(yù)覽pdf內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺析Vue2和Vue3中雙向綁定機(jī)制的優(yōu)化與差異

    淺析Vue2和Vue3中雙向綁定機(jī)制的優(yōu)化與差異

    Vue.js?核心特性之一就是雙向綁定,本文將深入探討?Vue2?和?Vue3?在雙向綁定上的區(qū)別,并分析這些改進(jìn)對(duì)性能和開(kāi)發(fā)體驗(yàn)的影響,希望對(duì)大家有所幫助
    2024-11-11
  • 詳解vue-cli3使用

    詳解vue-cli3使用

    這篇文章主要介紹了詳解vue/cli 3使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • element表單校驗(yàn)提示定位到元素位置

    element表單校驗(yàn)提示定位到元素位置

    本文主要介紹了element表單校驗(yàn)提示定位到元素位置,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Vue中使用h5 Plus的實(shí)現(xiàn)方法

    Vue中使用h5 Plus的實(shí)現(xiàn)方法

    這篇文章主要介紹了Vue中使用h5 Plus的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue基于el-table拓展之table-plus組件

    vue基于el-table拓展之table-plus組件

    本文主要介紹了vue基于el-table拓展之table-plus組件,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Element Notification通知的實(shí)現(xiàn)示例

    Element Notification通知的實(shí)現(xiàn)示例

    這篇文章主要介紹了Element Notification通知的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Vue和React組件之間的傳值方式詳解

    Vue和React組件之間的傳值方式詳解

    這篇文章主要介紹了Vue和React組件之間的傳值方式詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Vue.js如何使用Socket.IO的示例代碼

    Vue.js如何使用Socket.IO的示例代碼

    這篇文章主要介紹了Vue.js如何使用Socket.IO的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • vue大型項(xiàng)目之分模塊運(yùn)行/打包的實(shí)現(xiàn)

    vue大型項(xiàng)目之分模塊運(yùn)行/打包的實(shí)現(xiàn)

    這篇文章主要介紹了vue大型項(xiàng)目之分模塊運(yùn)行/打包的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • vue多頁(yè)面開(kāi)發(fā)和打包正確處理方法

    vue多頁(yè)面開(kāi)發(fā)和打包正確處理方法

    這篇文章主要介紹了vue多頁(yè)面開(kāi)發(fā)和打包的正確處理方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-04-04

最新評(píng)論