使用Vue3+PDF.js實現(xiàn)PDF預(yù)覽功能
1 前言
PDF.js 官網(wǎng)
本文使用的 PDF.js 版本為:v3.0.279
本文未使用 npm 形式在項目中引入 PDF.js 依賴,因為該形式引入的 PDF.js 需要自己寫額外頁面樣式及按鈕,而直接在官網(wǎng)下載可以使用 PDF.js 默認(rèn)提供的 viewer ,不用再增加額外代碼,即可實現(xiàn) PDF 預(yù)覽等功能
# 使用 npm 形式在項目中引入 PDF.js 依賴 npm i pdfjs-dist
效果預(yù)覽
2 PDF 預(yù)覽測試
2.1 下載 PDF.js
在 PDF.js 官網(wǎng)下載 PDF.js ,解壓后放到 public/static 下
2.2 window.open 直接打開
// 默認(rèn)打開 public/static/pdf/web/compressed.tracemonkey-pldi-09.pdf // 測試 pdf 有點大,第一次打開可能會有點慢,只要有進度條就是正常加載中 window.open('static/pdf/web/viewer.html') // 傳入 pdf 文件地址 const fileUrl = 'xxx' window.open('static/pdf/web/viewer.html?file=' + fileUrl)
2.3 彈框形式打開
<el-dialog v-model="dialogVisible"> <iframe :src="'static/pdf/web/viewer.html?file=' + fileUrl" style="width: 100%; height: 440px" ></iframe> </el-dialog>
3 修改配置項
3.1 修改主題色為暗色系
修改 public/static/pdf/web/viewer.js
AUTOMATIC: 0, // 跟隨瀏覽器 LIGHT: 1, // 亮色 DARK: 2 // 暗色
3.2 修改默認(rèn)語言為簡體中文
修改 public/static/pdf/web/viewer.js
3.3 打開 PDF 后默認(rèn)跳轉(zhuǎn)到某一頁
// 添加 #page=2 默認(rèn)跳轉(zhuǎn)到第二頁 window.open('static/pdf/web/viewer.html?file=' + fileUrl + '#page=2')
4 移除部分按鈕
4.1 簡單按鈕移除
例:移除[打印]按鈕
4.2 復(fù)雜按鈕移除
例:移除[文本]按鈕,由于該按鈕點擊后會出現(xiàn)面板,所以除了移除當(dāng)前按鈕相關(guān)代碼外,還要移除面板相關(guān)代碼
5 錯誤處理
5.1 跨域報錯
注釋 public/static/pdf/web/viewer.js 代碼
5.2 默認(rèn)語言為簡體中文,但下載按鈕仍顯示為“Save”
修改 public/static/pdf/web/viewer.html 第159、276行代碼
總結(jié)
到此這篇關(guān)于使用Vue3+PDF.js實現(xiàn)PDF預(yù)覽功能的文章就介紹到這了,更多相關(guān)Vue3 PDF.js實現(xiàn)PDF預(yù)覽內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue3?watchEffect的使用教程和相關(guān)概念
Vue?3?引入了?Composition?API,其中?watchEffect?是一個非常強大的工具,用于響應(yīng)式地追蹤依賴項的變化,本文將詳細介紹?watchEffect?的使用方法和相關(guān)概念,文中有詳細的代碼供大家參考,需要的朋友可以參考下2024-08-08vue2使用el-date-picker實現(xiàn)動態(tài)日期范圍demo
這篇文章主要為大家介紹了vue2使用el-date-picker實現(xiàn)動態(tài)日期范圍示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-06-06vuex中的 mapState,mapGetters,mapActions,mapMutations 的使用
在vuex中有四大金剛分別是State, Mutations,Actions,Getters,本文對這四大金剛做了詳細介紹,本文重點是給大家介紹vuex中的 mapState,mapGetters,mapActions,mapMutations 的使用,感興趣的朋友一起看看吧2018-04-04關(guān)于Vue父子組件傳參和回調(diào)函數(shù)的使用
這篇文章主要介紹了關(guān)于Vue父子組件傳參和回調(diào)函數(shù)的使用,我們將某段代碼封裝成一個組件,而這個組件又在另一個組件中引入,而引入該封裝的組件的文件叫做父組件,被引入的組件叫做子組件,需要的朋友可以參考下2023-05-05Vue3異步數(shù)據(jù)加載組件suspense的使用方法
前端開發(fā)中異步請求是非常常見的事情,比如遠程讀取圖片,調(diào)用后端接口等等,這篇文章主要給大家介紹了關(guān)于Vue3異步數(shù)據(jù)加載組件suspense的使用方法,suspense中文含義是懸念的意思,需要的朋友可以參考下2021-08-08