使用vue實(shí)現(xiàn)pdf預(yù)覽功能的方法
背景:材料上傳之后點(diǎn)擊預(yù)覽實(shí)現(xiàn)在瀏覽器上預(yù)覽的效果
效果如下:

實(shí)現(xiàn)代碼如下://預(yù)覽和下載操作
<el-table-column fixed="right" label="操作" width="210">
<template #default="scope">
<span
@click="handleRowClick(scope.row)"
class="table-btn btn-handle"
><i class="ri-eye-line"></i>預(yù)覽</span
>
<span
@click="handleDownLoadClick(scope.row)"
class="table-btn btn-handle"
><i class="ri-download-2-line"></i>下載</span
>
</template>
</el-table-column>
// 材料預(yù)覽
export function materialPreview(data) {
return Http.request({
url: '/file/preview',
method: 'get',
responseType: 'blob',
data: data
});
}
//預(yù)覽彈窗
<el-dialog
title="預(yù)覽"
:visible.sync="PreviewDialogVisible"
append-to-body
width="70%"
center
>
<div>
<iframe :src="pdfSrc" width="100%" height="800px"></iframe>
</div>
</el-dialog>
//data中定義的變量
data() {
return {
pdfSrc: "",
downloadUrl: "http://10.110.96.76/",
PreviewDialogVisible: false,
}
}
//預(yù)覽代碼
handleRowClick(row) {
materialPreview({
fileName:row.fileName,
realFileName:row.fileName,
}).then((res) => {
console.log(res);
const blob = new Blob([res.data], { type: "application/pdf" });
this.pdfSrc = window.URL.createObjectURL(blob);
this.$nextTick(() => {
this.PreviewDialogVisible = true;
});
console.log(this.pdfSrc);
//window.open(this.pdfSrc) //新窗口打開,借用瀏覽器去打印
});
}
//下載代碼
handleDownLoadClick(data) {
if (data.downloadUrl != null) {
window.open(this.downloadUrl + data.downloadUrl);
}
},后臺返回的流文件格式

到此這篇關(guān)于vue實(shí)現(xiàn)pdf預(yù)覽功能的方法的文章就介紹到這了,更多相關(guān)vue實(shí)現(xiàn)pdf預(yù)覽內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue自定義js圖片碎片輪播圖切換效果的實(shí)現(xiàn)代碼
這篇文章主要介紹了vue自定義js圖片碎片輪播圖切換效果的實(shí)現(xiàn)代碼,需要的朋友可以參考下2019-04-04
vue 數(shù)據(jù)操作相關(guān)總結(jié)
這篇文章主要介紹了vue 數(shù)據(jù)操作的相關(guān)資料,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下2020-12-12
Vue.extend 登錄注冊模態(tài)框的實(shí)現(xiàn)
這篇文章主要介紹了Vue.extend 登錄注冊模態(tài)框的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
vue之elementUi的el-select同時獲取value和label的三種方式
這篇文章主要介紹了vue之elementUi的el-select同時獲取value和label的三種方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02
Vue2和Vue3在v-for遍歷時ref獲取dom節(jié)點(diǎn)的區(qū)別及說明
這篇文章主要介紹了Vue2和Vue3在v-for遍歷時ref獲取dom節(jié)點(diǎn)的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03
使用element-ui,el-row中的el-col數(shù)據(jù)為空頁面布局變亂問題
這篇文章主要介紹了使用element-ui,el-row中的el-col數(shù)據(jù)為空頁面布局變亂問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08
Django+Vue.js實(shí)現(xiàn)搜索功能
本文主要介紹了Django+Vue.js實(shí)現(xiàn)搜索功能,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-06-06
vue使用require.context實(shí)現(xiàn)動態(tài)注冊路由
這篇文章主要介紹了vue使用require.context實(shí)現(xiàn)動態(tài)注冊路由的方法,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下2020-12-12
element-plus 下拉框?qū)崿F(xiàn)全選的示例代碼
本文主要介紹了element-plus 下拉框?qū)崿F(xiàn)全選的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05

