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("文件大小不可超過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如何通過文件流預(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)依賴的問題,本文將通過通俗易懂的方式,講解如何在?Vue?中解決組件之間的循環(huán)依賴問題,希望對(duì)大家有所幫助2024-11-11
Vue 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的問題
今天小編就為大家分享一篇解決vue A對(duì)象賦值給B對(duì)象,修改B屬性會(huì)影響到A的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-09-09
v-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-06
vue雙擊事件2.0事件監(jiān)聽(點(diǎn)擊-雙擊-鼠標(biāo)事件)和事件修飾符操作
這篇文章主要介紹了vue雙擊事件2.0事件監(jiān)聽(點(diǎn)擊-雙擊-鼠標(biāo)事件)和事件修飾符操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07
vue中三種插槽(默認(rèn)插槽/具名插槽/作用域插槽)的區(qū)別詳解
默認(rèn)插槽,具名插槽,作用域插槽是vue中常用的三個(gè)插槽,這篇文章主要為大家介紹了這三種插槽的使用與區(qū)別,感興趣的小伙伴可以了解一下2023-08-08
vuejs選中當(dāng)前樣式active的實(shí)例
今天小編就為大家分享一篇vuejs選中當(dāng)前樣式active的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-08-08
vue菜單欄聯(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

