Vue使用pdfobject實現(xiàn)預覽pdf的示例詳解
之前寫過一篇預覽pdf的,Vue使用vue-pdf實現(xiàn)PDF文件預覽 ,大家按需所用
一般項目中在上傳文件之前可能會有 先預覽一下,看是否符合要求,符合再上傳,這里先說了pdf文件,使用pdfobject庫,也很方便
安裝
pnpm add pdfobject
引入
import pdf from 'pdfobject'
使用
這里使用會借助于FileReader,F(xiàn)ileReader用于讀取文件
// 點擊文件上傳回調(diào)
handlePreview(file) {
const { raw } = file
// 預覽pdf
// FileReader用于讀取文件
let reader = new FileReader()
reader.readAsDataURL(raw) // 這里只需要將文件傳進去就可以了
reader.onload = e => {
// reader.result 同 e.target.result
// 1.文件名 2.要將pdf渲染到的指定位置(dom元素) 3.指定在embed標簽中的顯示的寬度
pdf.embed(reader.result, '#previewPdfAndDocx', { width: '100%' })
}
},
效果
我這里沒在上傳之前判斷,這里是上傳之后,點擊文件的時候進行預覽,也可以在上傳文件之前進行預覽,然后決定是否進行上傳。根據(jù)具體項目需求來

補充
除了上文,還可以利用pdfobject實現(xiàn)其他功能,希望對大家有所幫助
效果1:在指定位置(當指定位置為全局時)瀏覽PDF
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>在指定div中瀏覽PDF</title>
<!--在此引入bootstrap只為初始化樣式div樣式-->
<link rel="stylesheet" href="css/bootstrap.min.css" />
<style>
/* 添加樣式是為了實現(xiàn)全屏效果 */
html,body{
height: 100%;
overflow: hidden;
}
#example1{
height: 100%;
}
.pdfobject-container{
/* height: 500px; */
}
.pdfobject{
/* border: 1px solid #666; */
}
</style>
</head>
<body>
<div id="example1"></div>
<script type="text/javascript" src="js/pdfobject.min.js"></script>
<script>
// 我的pdf文件放在項目的pdf文件夾下,名字叫做Java.pdf
PDFObject.embed("pdf/Java.pdf", "#example1");
</script>
</body>
</html>效果2:在指定位置(當指定位置為局部時)瀏覽PDF
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>在指定div中瀏覽PDF</title>
<!--在此引入bootstrap只為初始化樣式div樣式-->
<link rel="stylesheet" href="css/bootstrap.min.css" />
<style>
html,body{
height: 100%;
overflow: hidden;
/* 添加背景顏色是為了方便查看整個body范圍 */
background-color: cornflowerblue;
}
#example1{
/* 設置放置PDF的div的樣式 */
height: 50%;
width: 50%;
}
/* PDF容器樣式 */
.pdfobject-container{
/* height: 500px; */
}
/* PDF樣式 */
.pdfobject{
/* border: 1px solid #666; */
}
</style>
</head>
<body>
<div id="example1"></div>
<script type="text/javascript" src="js/pdfobject.min.js"></script>
<script>
// 我的pdf文件放在項目的pdf文件夾下,名字叫做Java.pdf
PDFObject.embed("pdf/Java.pdf", "#example1");
</script>
</body>
</html>效果3:指定從多少頁開始閱讀(必須同時指定顯示PDF的div)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>在指定div中瀏覽PDF</title>
<!--在此引入bootstrap只為初始化樣式div樣式-->
<link rel="stylesheet" href="css/bootstrap.min.css" />
<style>
/* 添加樣式是為了實現(xiàn)全屏效果 */
html,body{
height: 100%;
overflow: hidden;
}
#example1{
height: 100%;
}
.pdfobject-container{
/* height: 500px; */
}
.pdfobject{
/* border: 1px solid #666; */
}
</style>
</head>
<body>
<div id="example1"></div>
<script type="text/javascript" src="js/pdfobject.min.js"></script>
<script>
// 我的pdf文件放在項目的pdf文件夾下,名字叫做Java.pdf,指定PDF從20頁開始閱讀
PDFObject.embed("pdf/Java.pdf", "#example1", {page: "20"});
</script>
</body>
</html>到此這篇關(guān)于Vue使用pdfobject實現(xiàn)預覽pdf的示例詳解的文章就介紹到這了,更多相關(guān)Vue pdfobject預覽pdf內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue element el-form 多級嵌套驗證的實現(xiàn)示例
本文主要介紹了vue element el-form 多級嵌套驗證的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-08-08
淺談vue-cli加載不到dev-server.js的解決辦法
本篇文章主要介紹了淺談vue-cli加載不到dev-server.js的解決辦法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11
Vue基于vuex、axios攔截器實現(xiàn)loading效果及axios的安裝配置
這篇文章主要介紹了Vue基于vuex、axios攔截器實現(xiàn)loading效果及axios的安裝配置,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-04-04
vscode 使用Prettier插件格式化配置使用代碼詳解
這篇文章主要介紹了vscode 使用Prettier插件格式化配置使用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08
vue+element項目實時監(jiān)聽div寬度的變化
這篇文章主要介紹了vue+element項目里實時監(jiān)聽某個div寬度的變化,然后執(zhí)行相應的事件,本文結(jié)合示例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧2024-08-08

