H5移动端预览PDF方法

ops/2024/11/15 6:15:19/

新建页面

新建一个页面以便去预览对应的pdf

新建完后在 pages.json 文件内去新增对应路由

页面内容

<template><view class="page"><view class="pdf"><view id="demo"></view></view><view class="backPage" @click="goBack"><uni-icons type="back" size="30"></uni-icons></view></view>
</template><script>
import Pdfh5 from "pdfh5"
import "pdfh5/css/pdfh5.css";
export default {data() {return {src: '',pdfh5: null}},onLoad(option) {this.src = option.urlthis.getDataInfo(option.url)uni.setNavigationBarTitle({title: '报告详情',});},methods:{getDataInfo(url){this.$nextTick(()=>{this.pdfh5 = new Pdfh5('#demo', {pdfurl: url ,lazy: true, // 是否懒加载,默认falserenderType: 'canvas', // canvas、svg,默认canvasmaxZoom: 3, // 手势缩放最大倍数,默认3scrollEnable: true, // 是否允许pdf滚动,默认truezoomEnable: true,// 是否允许pdf手势缩放,默认truelimit: 0, // 限制pdf加载最大页数,默认0不限制goto: 0,// 设置每一页pdf上的水印// logo: { src: require("@/assets/images/icon27.png"), x: 20, y: 70, width: 60, height: 60 },});console.log('pdfh5', this.pdfh5)// 监听pdf准备开始渲染,此时可以拿到pdf总页数this.pdfh5.on('ready', function(totalNum) {console.log('总页数:' + totalNum);});// 监听pdf加载完成事件,加载失败、渲染成功都会触发this.pdfh5.on('complete', (status, msg, time) => {console.log('状态:' + status + ',信息:' + msg + ',耗时:' + time + '毫秒');})})},goBack() {this.$tab.navigateBack();},}
}
</script><style scoped lang="less">.pdf {padding-bottom: 120rpx;}.backPage {background-color: #fff;border-radius: 50%;width: 80rpx;height: 80rpx;position: fixed; /* 固定定位 */  bottom: 200rpx; /* 紧贴底部 */  right: 30rpx; /* 紧贴右侧 */  text-align: center; /* 文字居中 */  line-height: 80rpx; /* 行高,使文字垂直居中 */  box-shadow: 0 0 10rpx rgba(0, 0, 0, 0.3); /* 阴影效果 */  z-index: 1000; /* 确保盒子在其他内容之上 */ }
</style>

在页面内,我的url是通过路由跳转时携带的

this.$tab.navigateTo("/pages/preview/preview?url=xxx"

把对应的url给 pdfurl 组件会去自动渲染


http://www.ppmy.cn/ops/132436.html

相关文章

【与AI+】学习SAP开发有什么渠道可以推荐

前言&#xff1a;好的&#xff0c;我又将开辟一个新的专栏&#xff0c;这个专栏呢&#xff0c;就准备放一些我向AI提问的问题&#xff0c;以及AI的回答。因为感觉真的好方便哈哈哈~ 我不是很确定我的专栏文章内容是否涉及版权&#xff0c;以及也不确定这些整合过的文字是否涉嫌…

【如何在 Linux 和 Android 系统中杀死进程】

在 Linux 或 Android 系统中,进程是操作系统中的基本单位,表示正在执行的程序。当我们需要终止某些不再需要或响应的进程时,通常会使用一些命令来杀死这些进程。本文将介绍几种常见的杀进程方法,帮助你高效管理系统中的进程。 一、使用 kill 命令杀进程 kill 命令是 Linu…

WordCloudStudio:AI生成模版为您的文字云创意赋能 !

在信息泛滥的时代&#xff0c;如何有效地将文字内容变成生动的视觉元素&#xff1f;WordCloudStudio为您提供了答案。无论您是市场营销专家、教育工作者、数据分析师&#xff0c;还是创意设计师&#xff0c;WordCloudStudio都能帮助您轻松创建引人注目的文字云。更重要的是&…

【skyvern 部署】自动化

【skyvern 部署】自动化 在数字化时代&#xff0c;数据已成为企业决策和创新的核心资源。然而&#xff0c;从互联网上获取这些数据并非易事&#xff0c;尤其是当涉及到复杂网站和动态内容时。传统的爬虫工具往往难以应对网站的反爬机制和复杂的交互逻辑。幸运的是&#xff0c;随…

【Lucene】什么是全文检索?解读结构化数据与非结构化数据

什么是全文检索&#xff1f; 全文检索是一种搜索技术&#xff0c;能够在大量文本内容中查找特定的词语或短语。这种技术特别适合非结构化数据&#xff0c;因为它通过构建倒排索引来快速定位包含指定关键字的文档&#xff0c;从而大大提升查询速度。 全文检索系统通常包括两个…

ODOO学习笔记(3):Odoo和Django的区别是什么?

Odoo和Django都是基于Python的开源框架&#xff0c;但它们的设计目标和用途有所不同&#xff1a; 设计目标和用途&#xff1a; Odoo&#xff1a;Odoo是一个企业资源规划&#xff08;ERP&#xff09;系统&#xff0c;它提供了一套完整的商业管理软件&#xff0c;包括会计、库存…

[spark面试]spark与mapreduce的区别---在DAG方面

1、spark中的task是以线程实现的&#xff0c;而mapreduce中是以进程实现的。 进程的频繁启动和停止会增加资源的消耗。 2、spark中支持DAG&#xff0c;而mapreduce不支持DAG DAG的使用&#xff1a;为什么支持DAG会更加高效 1&#xff09;、在DAG图中&#xff0c;会将一个job…

从美国大选,看软件安全风险与挑战

随着科技的不断进步&#xff0c;选举过程中的数字化程度越来越高&#xff0c;网络攻击和技术故障的潜在威胁也随之增加。以下是从2024年美国大选角度出发&#xff0c;分析软件安全面临的主要风险与挑战&#xff1a; 1. 选举系统的脆弱性 美国大选依赖于多种技术系统&#xff…