首页 > 原创文章 > 软件开发 > 查看文章

微信小程序实现pdf/doc等文档预览并可以保存下载的方法

所属分类:软件开发 来源: 丁老师原创 更新时间:2025-04-16 23:32 浏览: 7393 IP属地: 深圳
微信小程序开发

微信小程序可以实现文档的在线预览及保存本地下载,支持的格式有pdf/doc/xls/ppt等常用文档类型,如图:

微信图片_20250416232157.jpg

微信图片_20250416232204.jpg

除了对办公文档进行预览,还可以进行转发、收藏、保存手机本地等其他操作。

实现该功能的思路为,先用downloadFile下载文件到本地,然后使用openDocument方法来打开文档预览。
具体代码如下:

uni.downloadFile({
	url:文件url,
	success: function (res) {
		uni.openDocument({
			filePath: res['tempFilePath'],
			fileType: 'doc',
			showMenu: true,
			success: function (res) {
				
			},
			fail: function (res) {
				console.log('打开PDF失败', res);
			}
		})
	},
	fail: function (res) {
		console.log('打开PDF失败', res);
	}
});

以上代码为打开doc文件预览的方法,其中showMenu参数为,打开文件后是否允许有转发、收藏、保存手机本地等操作菜单,默认为false,如果需要则设置为true即可。

此代码将会把文档下载到本地,保存为临时文件然后打开。打开时顶部标题栏显示的文件名为临时文件名,如果想在标题栏显示自定义名称,则在downloadFile方法中,增加参数filePath,即指定保存路径,保存到指定路径时即对文件进行了命名。然后在openDocument中的filePath就不是res['tempFilePath']了,而是设置为刚才的指定路径即可。

相关文章

Mysql中5.7以下版本对Json数据的处...

在Mysql中,5.7以下版本是不支持Json对象的,但是可以将数据以json字符串的形式,保存在数据库的text字段中。以下是针对Mysql5.7以下版本json字符串的一些处理方法。#根据键值name查询(需要注意单双引号) sel...

使用ACME申请SSL证书提示Error c...

在使用ACME申请SSL证书时,输入了命令:acme.sh --issue -d www.xxx.com --dns dns_dp --server xxx来生成证书,但是结果却返回:Error creating new order. ...

Thinkphp的的代码为什么改了没效果?删...

有一个使用ThinkPHP框架开发程序的同学,遇到了这样一个问题,程序的代码明明已经改了,但在执行时还是按照以前的代码逻辑执行的,新修改的没有起到效果,并且他为了测试程序,都已经把这个程序文件删除了,但程序还是能执行,不得已求助于丁老师...

PHPExcel列自适应宽度的方法

有同学提问,在使用PHPExcel时,使用自带的setAutoSize方法无效,代码如下:$PHPExcel- getActiveSheet()- getColumnDimension(PHPExcel_Cell::stringFrom...

推荐文章

PhpStorm怎么取消html文件中sty...

phpstorm程序中,在打开html时总会出现对 style属性的折叠和隐藏,这样在检查代码的时候非常不直观,容易漏掉很多东西,非常的不方便,如图:

Uniapp开发微信小程序时,微信开发者工具...

在使用uniapp开发微信小程序,微信开发者工具调试时,明明已经给了获取位置权限,但还是提示需要打开gps获取位置,具体解决办法如下:打开uniapp的manifest.json文件,切换到源码模式,找到mp-weixin节点"p...

CI框架页面添加全局变量的方法

CI框架是一款很小却又非常强大的PHP程序框架,非常适合用来搭建中小型网站以及扩展程序。有同学问到,在使用CI框架时,比如要对全站的标题、公司信息、电话等设置一个全局变量,不用每个页面都写死,该怎么办呢?丁老师来教你:1.打开页面的控制器文...

Python3.12提示windows No...

在使用python3.12时突然遇到提示windows No module named distutils,研究了一下,把解决办法分享出来。1.安装 setuptools,它现在也提供 distutils;2.从第三方源(如系统软件包)载入...