Vue實(shí)現(xiàn)PDF文件預(yù)覽的方法詳解
一.安裝vue-pdf和vue-pdf-embed這兩個(gè)庫(kù)
在業(yè)務(wù)組件中導(dǎo)入
import pdf from "vue-pdf"; import VuePdfEmbed from "vue-pdf-embed";
二.在上傳文件組件的文件列表處綁定預(yù)覽方法
<Upload.Dragger style="position: relative; width: 80%; cursor: pointer" :maxCount="1" :beforeUpload="beforeUpload" accept=".pdf" @remove="removeFile" @preview="getNumPages" //預(yù)覽文件 > <div> <p class="ant-upload-drag-icon"> <CloudUploadOutlined /> </p> <p class="ant-upload-text">點(diǎn)擊或?qū)⑽募献У酱颂?lt;/p> <p class="ant-upload-hint">支持pdf類型的文件</p> </div> </Upload.Dragger> </Form.Item>
1.在beforeUpload方法中獲取文件的url
const beforeUpload = async (file: FileType) => { //獲取文件的url格式 pdfSrc.value = URL.createObjectURL(file); if (file.size / 1024 / 1024 > 50) { message.error("文件大小不可超過(guò)50MB"); return Upload.LIST_IGNORE; } if (filename !== ".pdf") { message.warn("請(qǐng)選擇指定的文件格式"); return; } return false; };
2.實(shí)現(xiàn)預(yù)覽方法
const getNumPages = () => { //創(chuàng)建加載任務(wù) let loadingTask = pdf.createLoadingTask(pdfSrc.value); loadingTask.promise .then((pdf: any) => { //獲取pdf的頁(yè)數(shù) numPages.value = pdf.numPages; }) .catch((err: any) => { console.error("pdf 加載失敗", err); }); pv.value = true; };
三.在彈窗中加載預(yù)覽窗口
<Modal v-model:visible="pv" :width="700"> <div v-if="pv"> <VuePdfEmbed v-for="item in numPages" :key="item" :source="pdfSrc" class="vue-pdf-embed" :page="item" style="1" > </VuePdfEmbed> </div> </Modal>
效果圖
以上就是Vue實(shí)現(xiàn)PDF文件預(yù)覽的方法詳解的詳細(xì)內(nèi)容,更多關(guān)于Vue實(shí)現(xiàn)PDF文件預(yù)覽的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- vue-pdf如何通過(guò)文件流預(yù)覽pdf文件
- vue如何在線預(yù)覽各類型文件
- 如何用vue-pdf包實(shí)現(xiàn)pdf文件預(yù)覽,支持分頁(yè)
- vue預(yù)覽本地pdf文件方法之vue-pdf組件使用
- vue2.0如何借用vue-pdf實(shí)現(xiàn)在線預(yù)覽pdf文件
- 詳解vue2如何實(shí)現(xiàn)點(diǎn)擊預(yù)覽本地文件
- Vue如何實(shí)現(xiàn)文件預(yù)覽和下載功能的前端上傳組件
- Vue實(shí)現(xiàn)微信小程序中預(yù)覽文件的縮放功能
- vue3中做文件預(yù)覽的項(xiàng)目實(shí)踐
相關(guān)文章
詳解Vue項(xiàng)目中如何解決組件之間的循環(huán)依賴
在大型?Vue?項(xiàng)目中,組件之間的關(guān)系可能會(huì)變得非常復(fù)雜,甚至?xí)霈F(xiàn)循環(huán)依賴的問(wèn)題,本文將通過(guò)通俗易懂的方式,講解如何在?Vue?中解決組件之間的循環(huán)依賴問(wèn)題,希望對(duì)大家有所幫助2024-11-11Vue resource中的GET與POST請(qǐng)求的實(shí)例代碼
本篇文章主要介紹了Vue resource中的GET與POST請(qǐng)求的實(shí)例代碼,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-07-07解決vue A對(duì)象賦值給B對(duì)象,修改B屬性會(huì)影響到A的問(wèn)題
今天小編就為大家分享一篇解決vue A對(duì)象賦值給B對(duì)象,修改B屬性會(huì)影響到A的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09v-show和v-if的區(qū)別?及應(yīng)用場(chǎng)景
這篇文章主要介紹了v-show和v-if的區(qū)別及應(yīng)用場(chǎng)景,vue中v-show與?v-if的作用效果是相同的,都能控制元素在頁(yè)面是否顯示,但是也有一定的區(qū)別,下面文章梳理總結(jié)v-show和v-if的區(qū)別,需要的小伙伴可以參考一下2022-06-06vue雙擊事件2.0事件監(jiān)聽(點(diǎn)擊-雙擊-鼠標(biāo)事件)和事件修飾符操作
這篇文章主要介紹了vue雙擊事件2.0事件監(jiān)聽(點(diǎn)擊-雙擊-鼠標(biāo)事件)和事件修飾符操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07vue中三種插槽(默認(rèn)插槽/具名插槽/作用域插槽)的區(qū)別詳解
默認(rèn)插槽,具名插槽,作用域插槽是vue中常用的三個(gè)插槽,這篇文章主要為大家介紹了這三種插槽的使用與區(qū)別,感興趣的小伙伴可以了解一下2023-08-08vuejs選中當(dāng)前樣式active的實(shí)例
今天小編就為大家分享一篇vuejs選中當(dāng)前樣式active的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08vue菜單欄聯(lián)動(dòng)內(nèi)容頁(yè)面tab的實(shí)現(xiàn)示例
本文主要介紹了vue菜單欄聯(lián)動(dòng)內(nèi)容頁(yè)面tab的實(shí)現(xiàn)示例,左側(cè)菜單欄與右側(cè)內(nèi)容部分聯(lián)動(dòng),當(dāng)點(diǎn)擊左側(cè)的菜單,右側(cè)會(huì)展示對(duì)應(yīng)的tab,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01