亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue中使用vue-pdf組件實(shí)現(xiàn)文件預(yù)覽及相應(yīng)報(bào)錯解決

 更新時(shí)間:2022年09月03日 14:05:19   作者:小任睡不醒`  
在需求中,經(jīng)常遇見pdf的在線預(yù)覽效果,很多pdf插件不支持vue3,或者是沒有集成翻頁放大縮小功能,比如vue-pdf,下面這篇文章主要給大家介紹了關(guān)于vue中使用vue-pdf組件實(shí)現(xiàn)文件預(yù)覽及相應(yīng)報(bào)錯解決的相關(guān)資料,需要的朋友可以參考下

前言

使用vue-pdf組件實(shí)現(xiàn)文件預(yù)覽功能 并在文件上增加操作按鈕vue3不支持vue-pdf,vue3項(xiàng)目用pdfjs-dist

一、安裝npm 依賴

1、在根目錄下輸入一下命令

npm i pdfjs-dist@2.5.207 --save
npm i vue-pdf@4.2.0 --save

2、修改pacakge.json文件 

"dependencies": {
  "pdfjs-dist": "2.5.207",
  "vue-pdf": "4.2.0",
  },

二、引入組件

import pdf from 'vue-pdf'
 
export default {
  name: 'App',
  components: {
    pdf
  },
  ···
}

1、html中使用組件 單頁

<pdf :src="file"></pdf>

多頁 

<pdf v-for="i in pageNum" :key="i" :src="file" :page="i"></pdf>

2、數(shù)據(jù)處理 單頁

export default {
  ···
  data () {
    return {
        file: "/pdf/test.pdf"
    }
  }
}

多頁 

export default {
  ···
  data () {
    return {
      file: "/pdf/test.pdf",
      pageNum: 1
    }
  },
  methods: {
    getPageNum () {
      let loadingTask = pdf.createLoadingTask(this.file)
      loadingTask.promise.then(pdf => {
        this.pageNum = pdf.numPages
      }).catch(err => {
        console.error('pdf加載失敗', err);
      })
    }
  },
  mounted () {
    this.getPageNum()
  }
}

三、項(xiàng)目使用--代碼部分

<template>
  <div class="pdf_wrap">
    <pdf class="pdfView" v-for="item in pageNum" :key="item" :src="pdfUrl" :page="item"></pdf>
    <div class="btnCont">
      <div class="savebtn"
           @click="sign">確認(rèn)</div>
    </div>
    </div>
</template>
 
<script>
import pdf from 'vue-pdf'
import { protocolGet } from "../../../api/validation/shareagreement";//調(diào)用的接口
export default {
  components: {
      pdf
  },
  props: {},
  data() {
    return {
      title: this.$route.meta?.title || '',
      pdfUrl:'',
      pageNum: 1
    }
  },
  watch: {},
  computed: {},
  methods: {
    getprotocolGet(){
      protocolGet().then((res)=>{
        if(res.code==200){
          this.pdfUrl= res.data.contractUrl//獲取到的協(xié)議展示
          this.getPageNum();//pdf分頁處理
        }
      })
    },
     getPageNum () {
      let loadingTask = pdf.createLoadingTask(this.pdfUrl,{withCredentials: false})
      loadingTask.promise.then(pdf => {
        this.pageNum = pdf.numPages
      }).catch(err => {
        console.error('pdf加載失敗', err);
      })
    },
    sign() {
      this.$router.push({
        path: '/xxx',
      })
    },
  },
  created() {
   this.getprotocolGet()
  },
  mounted() {
    
  },
}
</script>
<style>
.pdf_wrap{
  height: 100%;
  padding-bottom: 1.4rem;
  background-color: #fff;
}
</style>
<style  scoped>
.pdf_wrap .btnCont {
  position: fixed;
  bottom: 0rem;
  left: 0;
  background-color: #fff;
  padding: 0.1rem 0 .40rem 0;
  width: 100%;
  border: 0;
  text-align: center;
  
}
.pdf_wrap .btnCont .savebtn{
  color: #fff;
  display: inline-block;
  height: 0.8rem;
  line-height: 0.8rem;
  border-radius: 0.4rem;
  width: 6.9rem;
  margin: auto;
  font-size: 0.28rem;
  background-color: #ff0b95;
}
</style>

四、報(bào)錯解決

1、這種情況就是跨域了找后臺解決一下即可

2、 這種情況是pdf還沒加載出來就去渲染導(dǎo)致頁面pageNum找不到,調(diào)用接口加載完成后再去渲染pageNum

3、報(bào)這個錯誤加上  {withCredentials: false} ,報(bào)錯就沒有了

補(bǔ)充:vue使用vue-pdf預(yù)覽開發(fā)正常,打包報(bào)錯work.js404

修改依賴文件node_modules下worker-loader里的index.js文件里路徑
代碼如下(示例):

 const filename = _loaderUtils2.default.interpolateName(this, options.name || 'static/js/[hash].worker.js', {
    context: options.context || this.rootContext || this.options.context,
    regExp: options.regExp
  });

總結(jié)

到此這篇關(guān)于vue中使用vue-pdf組件實(shí)現(xiàn)文件預(yù)覽及相應(yīng)報(bào)錯解決的文章就介紹到這了,更多相關(guān)vue vue-pdf實(shí)現(xiàn)文件預(yù)覽內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue3搭建組件庫開發(fā)環(huán)境的示例詳解

    Vue3搭建組件庫開發(fā)環(huán)境的示例詳解

    這篇文章給大家分享Vue3搭建組件庫開發(fā)環(huán)境,給大家講解依次搭建組件庫、example、文檔、cli,本文內(nèi)容是搭建組件庫的開發(fā)環(huán)境的過程,感興趣的朋友跟隨小編一起看看吧
    2022-11-11
  • vue如何關(guān)閉prettier警告warn

    vue如何關(guān)閉prettier警告warn

    這篇文章主要介紹了vue如何關(guān)閉prettier警告warn問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue 詳解mixins混入用法大全

    Vue 詳解mixins混入用法大全

    如果我們在每個組件中去重復(fù)定義這些屬性和方法會使得項(xiàng)目出現(xiàn)代碼冗余并提高了維護(hù)難度,針對這種情況官方提供了Mixins特性,這時(shí)使用Vue mixins混入有很大好處,下面就介紹下Vue mixins混入使用方法,需要的朋友參考下吧
    2021-08-08
  • VUE路由動態(tài)加載實(shí)例代碼講解

    VUE路由動態(tài)加載實(shí)例代碼講解

    在本文里小編給大家整理了關(guān)于VUE路由動態(tài)加載實(shí)例代碼以及相關(guān)知識點(diǎn),需要的朋友們學(xué)習(xí)下。
    2019-08-08
  • Vue中使用Printjs插件實(shí)現(xiàn)打印功能

    Vue中使用Printjs插件實(shí)現(xiàn)打印功能

    Print.js 主要是為了幫助我們直接在我們的應(yīng)用程序中打印 PDF 文件,無需離開界面,也無需使用嵌入,這篇文章主要介紹了Vue中使用Printjs插件實(shí)現(xiàn)打印功能,需要的朋友可以參考下
    2022-08-08
  • ant-design-vue中tree增刪改的操作方法

    ant-design-vue中tree增刪改的操作方法

    這篇文章主要介紹了ant-design-vue中tree增刪改的操作方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • vue.js實(shí)現(xiàn)只能輸入數(shù)字的輸入框

    vue.js實(shí)現(xiàn)只能輸入數(shù)字的輸入框

    這篇文章主要為大家詳細(xì)介紹了vue.js實(shí)現(xiàn)只能輸入數(shù)字的輸入框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • vue-video-player 通過自定義按鈕組件實(shí)現(xiàn)全屏切換效果【推薦】

    vue-video-player 通過自定義按鈕組件實(shí)現(xiàn)全屏切換效果【推薦】

    這篇文章主要介紹了vue-video-player,通過自定義按鈕組件實(shí)現(xiàn)全屏切換效果,非常不錯,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-08-08
  • vue實(shí)現(xiàn)搜索關(guān)鍵詞高亮的詳細(xì)教程

    vue實(shí)現(xiàn)搜索關(guān)鍵詞高亮的詳細(xì)教程

    這篇文章主要為大家介紹了vue實(shí)現(xiàn)搜索關(guān)鍵詞高亮的詳細(xì)教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • vue3.0使用mapState,mapGetters和mapActions的方式

    vue3.0使用mapState,mapGetters和mapActions的方式

    這篇文章主要介紹了vue3.0使用mapState,mapGetters和mapActions的方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06

最新評論