Vue實現(xiàn)PDF文件預(yù)覽的方法詳解
更新時間:2023年09月26日 09:51:48 作者:fby
pdf文件預(yù)覽是開發(fā)業(yè)務(wù)時常見的一個交互,在toB項目中是經(jīng)常用到的,對于用戶上傳文件,預(yù)覽文件等操作時有一個更好的體驗,下面我結(jié)合實際業(yè)務(wù),在vue的基礎(chǔ)上與大家分享這個實現(xiàn)方法,需要的朋友可以參考下
一.安裝vue-pdf和vue-pdf-embed這兩個庫
在業(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">點擊或?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("請選擇指定的文件格式");
return;
}
return false;
};2.實現(xiàn)預(yù)覽方法
const getNumPages = () => {
//創(chuàng)建加載任務(wù)
let loadingTask = pdf.createLoadingTask(pdfSrc.value);
loadingTask.promise
.then((pdf: any) => {
//獲取pdf的頁數(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實現(xiàn)PDF文件預(yù)覽的方法詳解的詳細(xì)內(nèi)容,更多關(guān)于Vue實現(xiàn)PDF文件預(yù)覽的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
解決Vue-cli npm run build生產(chǎn)環(huán)境打包,本地不能打開的問題
今天小編就為大家分享一篇解決Vue-cli npm run build生產(chǎn)環(huán)境打包,本地不能打開的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09
vue?parseHTML函數(shù)源碼解析start鉤子函數(shù)
這篇文章主要為大家介紹了vue?parseHTML函數(shù)源碼解析start鉤子函數(shù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-07-07
elementUI樣式修改未生效問題詳解(掛載到了body標(biāo)簽上)
vue+elementUI項目開發(fā)中,經(jīng)常遇到修改elementUI組件樣式無效的問題,這篇文章主要給大家介紹了關(guān)于elementUI樣式修改未生效問題的相關(guān)資料,掛載到了body標(biāo)簽上,需要的朋友可以參考下2023-04-04
Vue入門之?dāng)?shù)據(jù)綁定(小結(jié))
本篇文章主要介紹了探索Vue高階組件的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01

