Vue使用pdfobject實(shí)現(xiàn)預(yù)覽pdf的示例詳解
之前寫過一篇預(yù)覽pdf的,Vue使用vue-pdf實(shí)現(xiàn)PDF文件預(yù)覽 ,大家按需所用
一般項(xiàng)目中在上傳文件之前可能會(huì)有 先預(yù)覽一下,看是否符合要求,符合再上傳,這里先說了pdf文件,使用pdfobject庫,也很方便
安裝
pnpm add pdfobject
引入
import pdf from 'pdfobject'
使用
這里使用會(huì)借助于FileReader,F(xiàn)ileReader用于讀取文件
// 點(diǎn)擊文件上傳回調(diào) handlePreview(file) { const { raw } = file // 預(yù)覽pdf // FileReader用于讀取文件 let reader = new FileReader() reader.readAsDataURL(raw) // 這里只需要將文件傳進(jìn)去就可以了 reader.onload = e => { // reader.result 同 e.target.result // 1.文件名 2.要將pdf渲染到的指定位置(dom元素) 3.指定在embed標(biāo)簽中的顯示的寬度 pdf.embed(reader.result, '#previewPdfAndDocx', { width: '100%' }) } },
效果
我這里沒在上傳之前判斷,這里是上傳之后,點(diǎn)擊文件的時(shí)候進(jìn)行預(yù)覽,也可以在上傳文件之前進(jìn)行預(yù)覽,然后決定是否進(jìn)行上傳。根據(jù)具體項(xiàng)目需求來
補(bǔ)充
除了上文,還可以利用pdfobject實(shí)現(xiàn)其他功能,希望對(duì)大家有所幫助
效果1:在指定位置(當(dāng)指定位置為全局時(shí))瀏覽PDF
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>在指定div中瀏覽PDF</title> <!--在此引入bootstrap只為初始化樣式div樣式--> <link rel="stylesheet" href="css/bootstrap.min.css" /> <style> /* 添加樣式是為了實(shí)現(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文件放在項(xiàng)目的pdf文件夾下,名字叫做Java.pdf PDFObject.embed("pdf/Java.pdf", "#example1"); </script> </body> </html>
效果2:在指定位置(當(dāng)指定位置為局部時(shí))瀏覽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; /* 添加背景顏色是為了方便查看整個(gè)body范圍 */ background-color: cornflowerblue; } #example1{ /* 設(shè)置放置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文件放在項(xiàng)目的pdf文件夾下,名字叫做Java.pdf PDFObject.embed("pdf/Java.pdf", "#example1"); </script> </body> </html>
效果3:指定從多少頁開始閱讀(必須同時(shí)指定顯示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> /* 添加樣式是為了實(shí)現(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文件放在項(xiàng)目的pdf文件夾下,名字叫做Java.pdf,指定PDF從20頁開始閱讀 PDFObject.embed("pdf/Java.pdf", "#example1", {page: "20"}); </script> </body> </html>
到此這篇關(guān)于Vue使用pdfobject實(shí)現(xiàn)預(yù)覽pdf的示例詳解的文章就介紹到這了,更多相關(guān)Vue pdfobject預(yù)覽pdf內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue watch監(jiān)聽對(duì)象及對(duì)應(yīng)值的變化詳解
下面小編就為大家分享一篇vue watch監(jiān)聽對(duì)象及對(duì)應(yīng)值的變化詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-02-02vue監(jiān)聽滾動(dòng)條頁面滾動(dòng)動(dòng)畫示例代碼
Vue是一套用于構(gòu)建用戶界面的漸進(jìn)式框架,與其它大型框架不同的是,Vue?被設(shè)計(jì)為可以自底向上逐層應(yīng)用,下面這篇文章主要給大家介紹了關(guān)于vue監(jiān)聽滾動(dòng)條頁面滾動(dòng)動(dòng)畫的相關(guān)資料,需要的朋友可以參考下2023-06-06vue element el-form 多級(jí)嵌套驗(yàn)證的實(shí)現(xiàn)示例
本文主要介紹了vue element el-form 多級(jí)嵌套驗(yàn)證的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08淺談vue-cli加載不到dev-server.js的解決辦法
本篇文章主要介紹了淺談vue-cli加載不到dev-server.js的解決辦法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11Vue基于vuex、axios攔截器實(shí)現(xiàn)loading效果及axios的安裝配置
這篇文章主要介紹了Vue基于vuex、axios攔截器實(shí)現(xiàn)loading效果及axios的安裝配置,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04vscode 使用Prettier插件格式化配置使用代碼詳解
這篇文章主要介紹了vscode 使用Prettier插件格式化配置使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08vue+element項(xiàng)目實(shí)時(shí)監(jiān)聽div寬度的變化
這篇文章主要介紹了vue+element項(xiàng)目里實(shí)時(shí)監(jiān)聽某個(gè)div寬度的變化,然后執(zhí)行相應(yīng)的事件,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2024-08-08