【前端】小程序实现预览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'
				})
			}
		})
	})
}
相关推荐
solicitous3 分钟前
遇到一个口头机遇的答辩准备2(ai告诉的要点)
学习·生活
xuankuxiaoyao4 分钟前
VUE.JS实践--事件对象和计算属性
javascript·vue.js·ecmascript
前端老石人4 分钟前
表单与交互式元素
前端·css·html
青衫码上行7 分钟前
【从零开始学习JVM】内存模型+堆栈的区别
java·jvm·学习·面试
果粒蹬i7 分钟前
自用超半年的免费 OCR 工具分享:告别付费,本地搭建更安心
前端·网络·ocr
朝阳58112 分钟前
M3U8 下载助手油猴脚本 - 完全使用指南
前端·javascript·windows
早點睡39013 分钟前
ReactNative项目OpenHarmony三方库集成实战:react-native-sensors(设备传感器)
javascript·react native·react.js
kadog14 分钟前
GraphX:基于 WebGL 区间算术的 GPU 加速隐函数绘图器
前端·javascript·数学建模·webgl
utmhikari14 分钟前
【DIY小记】解决MacOS上Edge浏览器bilibili全屏卡顿的问题
前端·macos·性能优化·edge·bilibili
a177988771214 分钟前
小程序码的生成与获取码中的scene
小程序·c#