uni-app在线预览pdf文件的方法教程

 更新时间:2024年10月26日 15:06:44   作者:家里有只小肥猫  
这篇文章主要介绍了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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue前端左侧菜单右侧内容的网站界面制作过程

    Vue前端左侧菜单右侧内容的网站界面制作过程

    这篇文章主要介绍了使用Vue和ElementUI制作一个带有左侧菜单和右侧内容区的网站页面的过程,文中通过CSS样式和深度作用符,实现了页面的美化和功能的完善,需要的朋友可以参考下
    2025-02-02
  • 使用vue.js实现联动效果的示例代码

    使用vue.js实现联动效果的示例代码

    本篇文章主要介绍了使用vue.js实现联动效果的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • 基于vue-cli 打包时抽离项目相关配置文件详解

    基于vue-cli 打包时抽离项目相关配置文件详解

    下面小编就为大家分享一篇基于vue-cli 打包时抽离项目相关配置文件详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • vue项目使用cmd运行方式

    vue项目使用cmd运行方式

    在开发过程中,启动项目是必不可少的一步,本文介绍了两种启动项目的方法,第一种方法是通过命令提示符(cmd)进入项目目录,然后输入npm run serve来启动项目,第二种方法是直接在项目目录下打开命令提示符(cmd),输入npm run serve即可启动项目
    2024-10-10
  • 关于vue3 解决getCurrentInstance 打包后线上环境报错问题

    关于vue3 解决getCurrentInstance 打包后线上环境报错问题

    这篇文章主要介绍了vue3 解决getCurrentInstance 打包后线上环境报错问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • Vue+Openlayers实现实时坐标点展示

    Vue+Openlayers实现实时坐标点展示

    这篇文章主要为大家详细介绍了Vue+Openlayers实现实时坐标点展示,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • vue中的计算属性实例详解

    vue中的计算属性实例详解

    模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。接下来通过本文给大家介绍vue中的计算属性,需要的朋友可以参考下
    2018-09-09
  • vue配置多页面的实现方法

    vue配置多页面的实现方法

    本篇文章主要介绍了vue配置多页面的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • flask和vue前后端分离项目部署的示例代码

    flask和vue前后端分离项目部署的示例代码

    本文主要介绍了flask和vue前后端分离项目部署的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • 浅谈Vue初学之props的驼峰命名

    浅谈Vue初学之props的驼峰命名

    这篇文章主要介绍了浅谈Vue初学之props的驼峰命名,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07

最新评论