当前位置: 首页 > article >正文

【前端】小程序实现预览pdf并导出

小程序实现预览pdf并导出

  • 一、前言
  • 二、需要的wx api
  • 三、完整代码

一、前言

小程序没办法直接导出pdf或一些文档,只能借助api先将文件下载下来并打开,再让用户手动去保存。之前做“小程序当前页面截图转pdf导出”功能的时候,小程序好像也无法实现。所以要打开文件,都让后端去做吧,要么给前端一个文件地址,要么返回二进制文件流,这样小程序就能打开文件了。

二、需要的wx api

  • downloadFile(下载文件)

在这里插入图片描述

  • openDocument(打开文件) 在这里插入图片描述
    showMenu设置为true才能支持用户把文件下载到本地

三、完整代码

const preViewPdf = (url) => { // 预览pdf
	uni.showLoading({
		title: '加载中',
		mask: true
	})

	return new Promise((resolve, reject) => {
		uni.downloadFile({
			url: baseUrl + url,
			header: {
				'Authorization': store.state.token
			},
			success: (res) => {
				if (res.statusCode === 200) {
					uni.openDocument({
						filePath: res.tempFilePath,
						showMenu: true, //显示右上角三个点,支持手动保存到本地
						success: (res) => {
							uni.hideLoading()
							resolve(true)
						},
						fail: (err) => {
							uni.hideLoading()
							resolve(true)
							uni.showToast({
								title: '打开失败',
								icon: 'none'
							})
						}
					})
				}
			},
			fail: (err) => {
				uni.hideLoading()
				uni.showToast({
					title: '下载失败',
					icon: 'none'
				})
			}
		})
	})
}


http://www.kler.cn/a/420685.html

相关文章:

  • 组合数学——鸽巢原理
  • uniapp使用扩展组件uni-data-select出现的问题汇总
  • 物联网——WatchDog(监听器)
  • 微信小程序 运行出错 弹出提示框(获取token失败,请重试 或者 请求失败)
  • Google Cloud 混合云部署连接方式最佳实践案例讲解
  • 深入浅出:开发者如何快速上手Web3生态系统
  • Argon2-cffi:Python中的密码学哈希库
  • AI 计算基础设施的战略转折点分析
  • C++ 变量和常量:开启程序构建之门的关键锁钥与永恒灯塔
  • Go-MediatR:Go语言中的中介者模式
  • 基于 Vite 封装工具库实践
  • ABE 中的隐藏属性:DIPPE(去中心化内积谓词加密)
  • linux 压缩命令,压缩a目录,但是不压缩a目录下的b目录,zip命令
  • termius mac版无需登录注册直接永久使用
  • Mybatis 复习
  • MySQL 数据库学习教程二:深入 MySQL 数据库世界
  • uniapp进阶技巧:如何优雅地封装request实例
  • 《嵌入式硬件设计》
  • 架构学习第五周--Kubernetes(一)
  • python基础(六)
  • 依赖注入之登录验证(Java EE 学习笔记08)
  • [JuMP.jl] 线性规划
  • 107.【C语言】数据结构之二叉树求总节点和第K层节点的个数
  • 针对Qwen-Agent框架的Function Call及ReAct的源码阅读与解析:Agent基类篇
  • 人证合一开启安全认证新时代、C#人证合一接口集成、人脸识别
  • 第一部分:基础知识 3. 数据类型 --[MySQL轻松入门教程]