news 2026/7/11 5:32:45

uniapp+vue3实现微信公众号H5预览多页PDF及下载

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
uniapp+vue3实现微信公众号H5预览多页PDF及下载

1. 建议下载旧版 PDF.js,新版本兼容性问题偏多,我下载的是 v2.16.105 版本,下载地址:Release v2.16.105 · mozilla/pdf.js · GitHub,下载后解压得到 build 和 web 文件夹,首先在项目中的 static 目录新增文件夹(名字随意,可以是 pdf,本文章用的名称是pdfpure),将解压后的 build 和 web 文件夹放进pdfpure。

2. 封装预览页面组件:

<template> <view class="preview-container"> <iframe :src="viewerUrl" class="web-iframe" frameborder="0"></iframe> </view> </template> <script setup> import { ref, computed } from 'vue' import { onLoad } from '@dcloudio/uni-app' const fileUrl = ref('') // 计算文件后缀 const fileType = computed(() => { if (!fileUrl.value) return '' return fileUrl.value.split('.').pop().toLowerCase() }) // 核心:动态计算出当前文件的最终全屏预览地址 const viewerUrl = computed(() => { if (!fileUrl.value) return '' if (fileType.value === 'pdf') { // 1. 确保对 PDF 的原链接进行完整的编码,防止特殊字符(如 ?, &, =)截断链接 const safeUrl = encodeURIComponent(fileUrl.value) // 2. 拼接到刚才你测试成功的路径后面,本地 pdf 文件夹地址 return `/h5/static/pdfpure/web/viewer.html?file=${safeUrl}` } else { // Office 文档继续走微软 return `https://view.officeapps.live.com/op/embed.aspx?src=${encodeURIComponent(fileUrl.value)}` } }) onLoad((options) => { if (options.previewUrl) { // 从上个页面传回来的 pdf 地址,由于地址偏长,需要先编码后传输 fileUrl.value = decodeURIComponent(options.previewUrl) } }) </script> <style scoped> .preview-container { width: 100%; height: 100vh; overflow: hidden; } .web-iframe { width: 100%; height: 100%; border: none; display: block; } </style>
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/11 5:31:42

Python open() 函数编码问题排查:3步解决UnicodeDecodeError与乱码

Python文件编码问题终极指南&#xff1a;从UnicodeDecodeError到跨平台兼容当你在Python中处理文本文件时&#xff0c;是否经常遇到这样的错误提示&#xff1a;"UnicodeDecodeError: gbk codec cant decode byte..."&#xff1f;或者打开文件后发现内容变成了乱码&am…

作者头像 李华
网站建设 2026/7/11 5:28:48

百度网盘SVIP加速插件深度解析:macOS下载速度核心揭秘

百度网盘SVIP加速插件深度解析&#xff1a;macOS下载速度核心揭秘 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘的龟速下载而烦恼吗&a…

作者头像 李华
网站建设 2026/7/11 5:27:17

Godot vs Unity效率对比:小团队如何节省70%开发时间

1. 项目概述&#xff1a;为什么我们要重新审视引擎选择最近和几个独立游戏开发圈的朋友聊天&#xff0c;发现一个挺有意思的现象&#xff1a;越来越多的小团队和独立开发者&#xff0c;开始把目光从 Unity 转向 Godot。大家讨论的核心&#xff0c;不再是“哪个引擎功能更强大”…

作者头像 李华
网站建设 2026/7/11 5:26:34

免费开源的生命周期评估软件:openLCA 2.7完整入门指南

免费开源的生命周期评估软件&#xff1a;openLCA 2.7完整入门指南 【免费下载链接】olca-app Source code of openLCA 项目地址: https://gitcode.com/gh_mirrors/ol/olca-app 面对日益严格的环保法规和企业可持续发展需求&#xff0c;如何准确计算产品碳足迹成为许多组…

作者头像 李华