vue3使用pdf.js來(lái)預(yù)覽文件的操作步驟(本地文件測(cè)試)
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)文章希望大家以后多多支持腳本之家!
- vue實(shí)現(xiàn)在線預(yù)覽pdf文件和下載(pdf.js)
- vue使用pdf.js預(yù)覽pdf文件的方法
- vue插件開(kāi)發(fā)之使用pdf.js實(shí)現(xiàn)手機(jī)端在線預(yù)覽pdf文檔的方法
- Vue實(shí)現(xiàn)在線預(yù)覽pdf文件功能(利用pdf.js/iframe/embed)
- Vue 集成 PDF.js 實(shí)現(xiàn) PDF 預(yù)覽和添加水印的步驟
- Vue使用PDF.js實(shí)現(xiàn)瀏覽pdf文件功能
- 使用Vue3+PDF.js實(shí)現(xiàn)PDF預(yù)覽功能
- Vue中使用pdf.js實(shí)現(xiàn)PDF文檔展示功能實(shí)例
相關(guān)文章
Vue?import?from省略后綴/加載文件夾的方法/實(shí)例詳解
本文介紹Vue在import時(shí)省略后綴以及import文件夾的方法,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08在小程序/mpvue中使用flyio發(fā)起網(wǎng)絡(luò)請(qǐng)求的方法
這篇文章主要介紹了在小程序/mpvue中使用flyio發(fā)起網(wǎng)絡(luò)請(qǐng)求的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09你了解vue3.0響應(yīng)式數(shù)據(jù)怎么實(shí)現(xiàn)嗎
這篇文章主要介紹了你了解vue3.0響應(yīng)式數(shù)據(jù)怎么實(shí)現(xiàn)嗎,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-06-06一文詳解如何在vue中實(shí)現(xiàn)文件預(yù)覽功能
很多Vue項(xiàng)目中都需要PDF文件預(yù)覽功能,比如合同ERP,銷售CRM,內(nèi)部文檔CMS管理系統(tǒng),內(nèi)置PDF文件在線預(yù)覽功能,下面這篇文章主要給大家介紹了關(guān)于如何在vue中實(shí)現(xiàn)文件預(yù)覽功能的相關(guān)資料,需要的朋友可以參考下2022-10-10html頁(yè)面引入vue組件之http-vue-loader.js解讀
這篇文章主要介紹了html頁(yè)面引入vue組件之http-vue-loader.js解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04基于vue,vue-router, vuex及addRoutes進(jìn)行權(quán)限控制問(wèn)題
這篇文章主要介紹了基于vue,vue-router, vuex及addRoutes進(jìn)行權(quán)限控制問(wèn)題,需要的朋友可以參考下2018-05-05Vue完整項(xiàng)目構(gòu)建(進(jìn)階篇)
這篇文章主要介紹了Vue完整項(xiàng)目構(gòu)建(進(jìn)階篇)的相關(guān)資料,需要的朋友可以參考下2018-02-02Vue Router的手寫(xiě)實(shí)現(xiàn)方法實(shí)現(xiàn)
這篇文章主要介紹了Vue Router的手寫(xiě)實(shí)現(xiàn)方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03vue中使用go()和back()兩種返回上一頁(yè)的區(qū)別說(shuō)明
這篇文章主要介紹了vue中使用go()和back()兩種返回上一頁(yè)的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07