uni-app在线预览pdf文件的方法教程
作者:家里有只小肥猫
这篇文章主要介绍了uni-app在线预览pdf文件的相关资料,本文主要介绍了如何在Vue项目中使用PDF.js插件进行PDF文件的预览,包括插件的下载、版本兼容问题的处理,以及在static文件夹下新建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端,则需要将本地文件系统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 // 点击调用下载 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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!