uni-app在線預覽pdf文件的方法教程
這里推薦下載pdf.js 插件
PDF.js - Browse Files at SourceForge.net
特此注意 如果報 Promise.withResolvers is not a function 請去查看版本兼容問題
降低pdf.js版本
提高node版本
下載完成后 在 static 文件夾下新建 pdf 文件夾,將解壓文件放進 pdf 文件夾下
在當前需要預覽的vue頁面中,先將文件鏈接下載為本地文件,代碼如下
小tips 這里如果是超鏈接的形式 可以直接跳轉 不需要再去下載 (因為客戶需要在線看 而不是先下載)
openPdf(url) { uni.downloadFile({ //需要預覽的文件地址 url: url, success: (res) => { if (res.statusCode === 200) { //下載成功,得到文件臨時地址 console.log('下載成功', res.tempFilePath); //條件編譯,若為h5端則直接賦值文件地址 // #ifdef H5 let newUrl = res.tempFilePath // #endif //條件編譯,若為App端,則需要將本地文件系統(tǒng)URL轉換為平臺絕對路徑 // #ifdef APP-PLUS let newUrl = plus.io.convertLocalFileSystemURL(res.tempFilePath) // #endif //這里新建一個vue頁面,跳轉并預覽pdf文檔 uni.navigateTo({ url: "/pages/previewArea/PdfPreview?url=" + url, }) } } }) }
這是新建的vue頁面,用于web-view預覽pdf文件,代碼如下
<template> <view> <!-- 全局pdf查看器 --> <web-view :src="path"></web-view> </view> </template> <script> export default { data() { return { viewerUrl: "/static/pdf/-pdf--master/hybrid/pdf.html", path: "", fileUrl: "", } }, onLoad(options) { this.fileUrl = options.url; }, onShow() { //進行拼接即可 this.path = `${this.viewerUrl}?url=${this.fileUrl}` } } </script>
可以直接跳轉顯示
static/pdf/-pdf--master/hybrid/pdf.html 這個頁面 可以自定義添加下載按鈕
<body> <div> <div id="pdf-view"></div> <div class="down" id="downPdf">下載</div> </div> <script src="html/pdf/pdf.js"></script> <script src="html/pdf/pdf.worker.js"></script> <script src="html/pdf/jquery-1.11.3.min.js" type="text/javascript" charset="utf-8"> </script> <script src="html/pdf/pdfh5.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> xxxx xxx // 點擊調(diào)用下載 let downPdf = document.getElementById("downPdf"); document.getElementById("downPdf").addEventListener("click", async function (event) { event.preventDefault(); try { var downloadLink = document.createElement('a'); downloadLink.href = url; // 這里的url應該是你的PDF文件的URL downloadLink.download = url.split("/").pop()// 設置下載后的文件名 downloadLink.style.display = 'none'; document.body.appendChild(downloadLink); downloadLink.click(); document.body.removeChild(downloadLink); } catch (error) { console.log('error',error); } </script> </body>
校驗是否是pdf文件
let regPdf = /\.(pdf)$/.test(data.toLowerCase()) 是否pdf文件
let regImg = /\.(jpg|jpeg|png|gif)$/.test(data.toLowerCase()) 是否圖片文件
let regDoc = /\.(doc|docx)$/.test(data.toLowerCase()) 是否doc 或者 docx文件
總結
到此這篇關于uni-app在線預覽pdf文件的文章就介紹到這了,更多相關uni-app在線預覽pdf內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Vue前端左側菜單右側內(nèi)容的網(wǎng)站界面制作過程
這篇文章主要介紹了使用Vue和ElementUI制作一個帶有左側菜單和右側內(nèi)容區(qū)的網(wǎng)站頁面的過程,文中通過CSS樣式和深度作用符,實現(xiàn)了頁面的美化和功能的完善,需要的朋友可以參考下2025-02-02使用vue.js實現(xiàn)聯(lián)動效果的示例代碼
本篇文章主要介紹了使用vue.js實現(xiàn)聯(lián)動效果的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01關于vue3?解決getCurrentInstance?打包后線上環(huán)境報錯問題
這篇文章主要介紹了vue3?解決getCurrentInstance?打包后線上環(huán)境報錯問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05