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

小程序实现预览pdf并导出

一、前言

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

二、需要的wx api

  • downloadFile(下载文件)
  • openDocument(打开文件)
    showMenu设置为true才能支持用户把文件下载到本地

三、完整代码

js 复制代码
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'
				})
			}
		})
	})
}
相关推荐
大鸡腿最好吃12 分钟前
为啥react要用jsx
前端·javascript·react.js
小黄编程快乐屋16 分钟前
前端小练习——大雪纷飞(JS没有上限!!!)
开发语言·前端·javascript
程序猿阿伟18 分钟前
《平衡之策:C++应对人工智能不平衡训练数据的数据增强方法》
前端·javascript·c++
STUPID MAN32 分钟前
vue3使用后端传递的文件流进行文件预览
前端·javascript·vue.js·文件预览
-代号952740 分钟前
【React】二、状态变量useState
前端·javascript·react.js
爬坑的小白41 分钟前
el-menu导航三级数据结构及数据展示
前端·javascript·vue.js
CodeSheep1 小时前
雷军又添一员猛将!!
前端·后端·程序员
码农老张Zy1 小时前
【PHP小课堂】学习PHP中的变量处理相关操作
android·开发语言·学习·php
IT古董1 小时前
【机器学习】机器学习的基本分类-监督学习-决策树-C4.5 算法
人工智能·学习·算法·决策树·机器学习·分类
IT古董1 小时前
【机器学习】机器学习的基本分类-监督学习-决策树-CART(Classification and Regression Tree)
学习·决策树·机器学习·分类