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

vue3使用pdf.js來(lái)預(yù)覽文件的操作步驟(本地文件測(cè)試)

 更新時(shí)間:2024年05月09日 15:44:48   作者:小同學(xué)L  
這篇文章主要介紹了vue3使用pdf.js來(lái)預(yù)覽文件的操作步驟(本地文件測(cè)試),文中通過(guò)代碼示例和圖文結(jié)合的方式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下

1.下載pdf.js庫(kù)      

下載地址

下載后的文件解壓結(jié)構(gòu)是這樣的

2. 放入項(xiàng)目中

在vue3中public文件夾下新建 lib/pdfjs 文件 , 將解壓后的文件放入pdfjs文件夾下

3.新建PDF組件

在src/components新建PDF.vue組件

<template>
    <iframe :src="src" width="100%" :web.xmlheight="pdfH" style="width: 100%; height: 90%"></iframe>
</template>
<script setup lang='ts'>
import { ref, nextTick, computed, onMounted } from 'vue'
const props = defineProps({
    src: {
        type: String,
        required: true
    }
})
 
let src = computed(() => {
    // vue3的話 路徑上不需要寫(xiě)public
    // 如果是vue2的話 要寫(xiě)public ->  return `/public/lib/pdfjs/web/viewer.html?file=${props.src}`
    // 我這里是本地文件測(cè)試(props.src是本地文件,必須將這個(gè)文件放在public/lib/pdfjs/web下面才行)
    return `/lib/pdfjs/web/viewer.html?file=${props.src}`
})
let pdfH = ref(100)
nextTick(() => {
    pdfH.value = document.documentElement.clientHeight - 68
})
onMounted(() => {
})
</script>

4.在HomeView.vue文件中使用PDF.vue

這里我使用了   打開(kāi)新頁(yè)面預(yù)覽和彈窗預(yù)覽  兩種方式來(lái)預(yù)覽

<script setup lang="ts">
import { ref } from 'vue';
import PDF from '@/components/PDF.vue'
let dySrc = ref('')
const dialogVisible = ref(false)
//? 打開(kāi)新頁(yè)面預(yù)覽
const showPDF = async () => {
    dySrc.value = '/lib/pdfjs/web/測(cè)試.pdf'
    //替換為實(shí)際的文檔URL
    const pdfUrl = `lib/pdfjs/web/viewer.html?file=${dySrc.value}`;
    //pdfUrl是當(dāng)前頁(yè)面的pdf文件的URL,第二個(gè)參數(shù)'_blank'表示在新窗口中打開(kāi)。
    window.open(pdfUrl, '_blank');
}
//?在彈框中顯示
const showDialogPDF = () => {
    dialogVisible.value = true
    dySrc.value = '/lib/pdfjs/web/測(cè)試.pdf'
}
</script>
<template>
    <div>
        文件名(新頁(yè)面打開(kāi)預(yù)覽):
        <span @click="showPDF" style="color:rgb(0,174,236);cursor: pointer;">xxx.pdf</span>
    </div>
    <div>
        文件名(彈窗打開(kāi)預(yù)覽):
        <span @click="showDialogPDF" style="color:rgb(0,174,236);cursor: pointer;">xxx.pdf</span>
    </div>
    <el-dialog v-model="dialogVisible" title="預(yù)覽pdf">
        <p-d-f :src="dySrc"></p-d-f>
    </el-dialog>
</template>
<style>
.el-dialog {
    width: 1000px;
    height: 800px;
}
 
.el-dialog__body {
    height: 100%;
}
</style>

注意:

本地文件測(cè)試 必須將pdf文件放在public/lib/pdfjs/web下面才行

5.跨域問(wèn)題

如果出現(xiàn)跨域問(wèn)題,將  viewer.js文件中的以下代碼注釋掉就可以了

    // if (fileOrigin !== viewerOrigin) {
      //   throw new Error("file origin does not match viewer's");
      // }

6.總結(jié)

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

相關(guān)文章

  • vue下如何利用canvas實(shí)現(xiàn)在線圖片標(biāo)注

    vue下如何利用canvas實(shí)現(xiàn)在線圖片標(biāo)注

    這篇文章主要介紹了vue下如何利用canvas實(shí)現(xiàn)在線圖片標(biāo)注,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue3中的reactive、readonly和shallowReactive使用詳解

    vue3中的reactive、readonly和shallowReactive使用詳解

    在 Vue3 中,可以使用 shallowReactive 函數(shù)創(chuàng)建一個(gè)淺層響應(yīng)式對(duì)象,它接收一個(gè)普通對(duì)象作為參數(shù),返回一個(gè)淺層響應(yīng)式代理對(duì)象,本文給大家介紹vue3中的reactive、readonly和shallowReactive使用,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • 在vue中使用jsx語(yǔ)法的使用方法

    在vue中使用jsx語(yǔ)法的使用方法

    這篇文章主要介紹了在vue中使用jsx語(yǔ)法的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Vue注冊(cè)模塊與登錄狀態(tài)的持久化實(shí)現(xiàn)方法詳解

    Vue注冊(cè)模塊與登錄狀態(tài)的持久化實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了Vue注冊(cè)模塊與登錄狀態(tài)的持久化實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Vue實(shí)現(xiàn)輸入框@功能的示例代碼

    Vue實(shí)現(xiàn)輸入框@功能的示例代碼

    這篇文章主要為大家介紹了如何利用Vue實(shí)現(xiàn)輸入框@功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Vue有一定的幫助,感興趣的可以學(xué)習(xí)一下
    2022-05-05
  • vue2.0實(shí)戰(zhàn)之使用vue-cli搭建項(xiàng)目(2)

    vue2.0實(shí)戰(zhàn)之使用vue-cli搭建項(xiàng)目(2)

    這篇文章主要為大家詳細(xì)介紹了vue2.0實(shí)戰(zhàn)第二篇使用vue-cli搭建項(xiàng)目,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Vue+Electron打包桌面應(yīng)用(超詳細(xì)完整教程)

    Vue+Electron打包桌面應(yīng)用(超詳細(xì)完整教程)

    這篇文章主要介紹了Vue+Electron打包桌面應(yīng)用超詳細(xì)完整教程,在這大家要記住整個(gè)項(xiàng)目的json文件不能有注釋,及時(shí)沒(méi)報(bào)錯(cuò)也不行,否則運(yùn)行命令時(shí)還是有問(wèn)題,具體細(xì)節(jié)問(wèn)題參考下本文詳細(xì)講解
    2024-02-02
  • vue3-treeselect數(shù)據(jù)綁定失敗的解決方案

    vue3-treeselect數(shù)據(jù)綁定失敗的解決方案

    這篇文章主要介紹了vue3-treeselect數(shù)據(jù)綁定失敗的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • VUE項(xiàng)目運(yùn)行npm install報(bào)錯(cuò)問(wèn)題以及解決

    VUE項(xiàng)目運(yùn)行npm install報(bào)錯(cuò)問(wèn)題以及解決

    在運(yùn)行Vue項(xiàng)目時(shí)遇到npm安裝錯(cuò)誤可使用命令npminstall--legacy-peer-deps解決,若VsCode中無(wú)法運(yùn)行npm命令,則可能是IDE配置未生效,可嘗試重啟電腦或使用cmd命令行直接在項(xiàng)目目錄下運(yùn)行
    2024-10-10
  • vue項(xiàng)目如何分環(huán)境部署

    vue項(xiàng)目如何分環(huán)境部署

    這篇文章主要介紹了vue項(xiàng)目如何分環(huán)境部署問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2018-12-12

最新評(píng)論