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

原生小程序如何使用pdf.js实现查看pdf,以及关键词检索高亮

1.下载pdf.js库文件

前往 pdf.js 的 官网 下载库文件,下哪个版本都可以,后者适用于旧版浏览器,所以我下载的是后者

在这里插入图片描述

下载完成后,因为微信小程序打包的限制,我将库文件放到项目的后台系统了,在h5端处理会比在小程序端处理方便,最后就用web-view标签嵌入到小程序即可;

2.将下载好的pdf.js导入h5项目

2.1、目录结构

在这里插入图片描述

2.2、h5端使用pdf.js

新建一个文件夹–>新建一个.vue文件用来展示pdf文件–>使用iframe标签承接pdf文件
运行能打开默认的pdf文件,就证明成功了

在这里插入图片描述

pdf.vue

<template><!-- pdf详情页 --><div><iframe :src="../../../public/pdfjs-3.5.141-legacy-dist/web/viewer.html" width="100%" height="700px;"></iframe></div>
</template><script >import { useRouter } from "vue-router";
export default {name: 'pdf',setup() {document.title = 'pdf详情页'  // 修改本页面网页标题const route = useRouter()return {}}
}
</script><style></style>

注:有可能会出现以下报错,只需要找到viewer.html,将script标签的type修改成module即可

在这里插入图片描述
在这里插入图片描述

然后运行项目,本页面能打开默认的pdf文件就证明成功了

在这里插入图片描述

2.3、嵌入到小程序中

在这里插入图片描述

<template><!-- pdf详情页 --><div><iframe :src="file" width="100%" height="700px;"></iframe></div>
</template><script >import { useRouter } from "vue-router";
export default {name: 'pdf',setup() {document.title = 'pdf详情页'  // 修改本页面网页标题const route = useRouter()console.log(route.currentRoute.value.query.file);let file = route.currentRoute.value.query.file; // 获取当前url参数if (file) {file = `../../../public/pdfjs-3.5.141-legacy-dist/web/viewer.html?file=${file}` // 找到参数则展示指定pdf} else {file = '../../../public/pdfjs-3.5.141-legacy-dist/web/viewer.html'  // 若没有找到参数,打开默认pdf文件}return {file}}
}
</script><style></style>

通过小程序传来的参数,h5端就能访问到pdf,利用pdf.js自带的关键词检索,就能完成业务需求啦

在这里插入图片描述

如果出现跨域问题的话,在viewer.js文件中找到以下代码注释掉即可

在这里插入图片描述

在这里插入图片描述

http://www.lryc.cn/news/63179.html

相关文章:

  • 「数据架构」MDM实现失败的主要原因
  • 【Java基础 1】Java 环境搭建
  • 2023-4-26-C++11新特性之正则表达式
  • python接口自动化测试 requests库的基础使用
  • Photon AI Translator 和做产品的一些思考
  • IPTV系统架构的分析与研究
  • workerman开发者必须知道的几个问题
  • golang Gin实现websocket
  • 冯·诺依曼体系结构与初始操作系统
  • 软件测试之黑盒测试的具体方法详解
  • 图形编辑器:历史记录设计
  • ubuntu22.04下挂载第二块硬盘
  • 举例说明.net中in与out的作用与区别
  • Java常见的100道面试题(内附答案及代码示例)持续更新
  • 策略设计模式知多少
  • 第三十九章 配置镜像 - 配置 ISCAgent - 在 UNIX Linux 和 macOS 系统上为非根实例启动 ISCAgent
  • 嵌入式安卓开发:使用Camera2获取相机
  • 阿里云g8i服务器Intel Xeon(Sapphire Rapids) Platinum 8475B
  • 设计模式——组件协作模式之观察者模式
  • 观察者设计模式知多少
  • Flink之TaskManager内存解析
  • 为何越来越多人不喜欢“试用期六个月”的公司?网友:感觉不靠谱
  • 单例模式的四种创建方式
  • Nginx+Keepalived 中的脑裂现象
  • 04 KVM虚拟化网络概述
  • 110页智慧农业解决方案(农业信息化解决方案)(ppt可编辑)
  • Java知识体系及聊天室程序
  • java的详细发展历程
  • 丢石子
  • skywalking手动上报一些指标信息