vue预览PDF文件的几种方法
1.使用iframe标签预览PDF文件
1.1页面结构 html
<iframe:src="fileUrl"id="iframeBox"ref="iframeRef"frameborder="0"style="width: 100%; height: 800px"></iframe>
1.2 js代码
export default {data() {return {fileUrl: "test.pdf", //文件路径};}
};
2.使用embed标签预览PDF文件
2.1页面结构 html
<embed:src="fileUrl"type="application/pdf"width="100%"height="800px"/>
2.2 js代码
export default {data() {return {fileUrl: "test.pdf", //文件路径};}
};
3.使用vue-pdf插件预览PDF文件
3.1 安装依赖
npm install vue-pdf
3.2 注册并引入组件
import pdf from "vue-pdf";
components: {pdf,},
3.3 使用组件展示PDF文件
//html<divclass="pdf-box"><div class="pdf-tab"><div class="pdf-tab-button"><div class="btn-def btn-pre" @click.stop="prePage">上一页</div><div class="btn-def btn-next" @click.stop="nextPage">下一页</div><div class="btn-def" @click.stop="clock">顺时针</div><div class="btn-def" @click.stop="counterClock">逆时针</div></div><div class="page-size">{{ pageNum }}/{{ pageTotalNum }}</div><pdfref="pdf"class="pdf-preview":src="fileUrl":page="pageNum":rotate="pageRotate":style="{ height: customHeight + 'px' }"@num-pages="pageTotalNum = $event"@link-clicked="page = $event"></pdf></div>//jsexport default {data() {return {fileUrl: "", //文件路径pageNum: 1,pageTotalNum: 1,pageRotate: 0,customHeight: 400, // 自定义的PDF预览框高度};},components: {pdf,},computed: {//解决预览pdf文字丢失Warning: Error during font loading: The CMap “baseUrl“ parameter must be specifie的问题pdfSrc() {//处理pdfUrl返回let src = pdf.createLoadingTask({url: this.fileUrl,//引入pdf.js字体,templcMapUrl: "https://cdn.jsdelivr.net/npm/pdfjs-dist@2.5.207/cmaps/",cMapPacked: true,});return src;},},methods: {//上一页prePage() {var p = this.pageNum;p = p > 1 ? p - 1 : this.pageTotalNum;this.pageNum = p;},// 下一页nextPage() {var p = this.pageNum;p = p < this.pageTotalNum ? p + 1 : 1;this.pageNum = p;},//顺时针clock() {this.pageRotate += 90;},//逆时针counterClock() {this.pageRotate -= 90;} },
};
//css
.pdf-box {width: 100%;height: 800px;.pdf-tab {width: 100%;height: 800px;display: flex;flex-direction: column;align-items: center;.pdf-tab-button {width: 100%;display: flex;align-items: center;justify-content: space-around;.btn-def {width: 98px;height: 40px;line-height: 40px;text-align: center;color: #fff;background-color: #409eff;border-color: #409eff;border-radius: 5px;font-size: 18px;}}.page-size {width: 100%;display: flex;align-items: center;justify-content: center;font-size: 18px;}}
}相关文章:
vue预览PDF文件的几种方法
1.使用iframe标签预览PDF文件 1.1页面结构 html <iframe:src"fileUrl"id"iframeBox"ref"iframeRef"frameborder"0"style"width: 100%; height: 800px"></iframe>1.2 js代码 export default {data() {return {…...
深度学习入门到放弃系列 - 阿里云人工智能平台PAI部署开源大模型chatglm3
通过深度学习入门到放弃系列 - 魔搭社区完成开源大模型部署调用 ,大概掌握了开源模型的部署调用,但是魔搭社区有一个弊端,关闭实例后数据基本上就丢了,本地的电脑无法满足大模型的配置,就需要去租用一些高性价比的GPU机…...
GPT-4o,AI实时视频通话丝滑如人类,Plus功能免费可用
不开玩笑,电影《她》真的来了。 OpenAI最新旗舰大模型GPT-4o,不仅免费可用,能力更是横跨听、看、说,丝滑流畅毫无延迟,就像在打一个视频电话。 现场直播的效果更是炸裂: 它能感受到你的呼吸节奏…...
【优选算法】——Leetcode——202—— 快乐数
目录 1.题目 2. 题⽬分析: 3.简单证明: 4. 解法(快慢指针): 算法思路: 补充知识:如何求⼀个数n每个位置上的数字的平⽅和。 总结概括 5.代码实现 1.C语言 2.C 1.题目 202. 快乐数 编写一个算法来…...
华大基因CEPO-尹烨说学习与生活
怎么去面对生活和事业中的不确定性? 尹烨说,人类能够对抗不确定性的唯一的办法是,去让自己充电。 主持人问他,“和你同年的也有很多人,他们也可能也在学习,你怎么就能够脱颖而出呢?” 他说&am…...
C#中json数据序列化和反序列化的最简单方法(C#对象和字符串的相互转换)
文章目录 将C#对象转换为json字符串Newtonsoft模块的安装用Newtonsoft将对象转换为json字符串 将json字符串转换为C#对象 将C#对象转换为json字符串 本介绍将基于C#中的第三方库Newtonsoft进行,因此将分为Newtonsoft模块的安装和使用两部分。该模块的优势在于只需要…...
logback 日志脱敏
工具类 CustomLogbackPatternLayoutEncoder.java import ch.qos.logback.classic.encoder.PatternLayoutEncoder;public class CustomLogbackPatternLayoutEncoder extends PatternLayoutEncoder {/*** 正则替换规则*/private LogbackReplaces replaces;/*** 使用自定义 MyLog…...
element-ui的表单中,输入框、级联选择器的长度设置
使用<el-col>控制输入框的长度 <el-form-item label"姓名" label-width"80px"><el-col :span"15"><el-input v-model"form.name" autocomplete"off"></el-input></el-col></el-form…...
深入了解 npm:Node.js 包管理工具详解
文章目录 一、npm 基本概念1.1 什么是 npm?1.2 package.json 文件 二、npm 常用命令2.1 初始化项目2.2 安装依赖2.2.1 安装单个包2.2.2 全局安装包2.2.3 安装开发依赖 2.3 移除依赖2.4 更新依赖2.5 查看已安装的包2.6 发布包 三、npm 高级用法3.1 使用 npm scripts3…...
记一次跨域问题
线上跨域问题,在自己配置确认没问题下,要及时找运维看看是不是nginx配置问题。 两个方面: 项目代码 nginx配置 SpringBoot 解决跨域问题的 5 种方案! SpringBoot解决CORS跨域问题 SpringBoot-实现CORS跨域原理及解决方案...
第9章 负载均衡集群日常维护
一个设计良好的高可用负载均衡集群,交付使用以后并不能一劳永逸。欲使其高效、稳定、持续对外服务,日常维护必不可少。 对于高可用负载均衡集群来说,有两种类型的维护形式:常规性维护与突发性维护。突发性维护一般指故障处理&…...
鸿蒙内核源码分析(消息封装篇) | 剖析LiteIpc(上)进程通讯内容
基本概念 LiteIPC是OpenHarmony LiteOS-A内核提供的一种新型IPC(Inter-Process Communication,即进程间通信)机制,为轻量级进程间通信组件,为面向服务的系统服务框架提供进程间通信能力,分为内核实现和用户…...
Charger之三动态电源路径管理(DPPM)
-----本文简介----- 主要内容包括: 领资料:点下方↓名片关注回复:粉丝群 硬件之路学习笔记公众号 Charger的动态电源路径管理(DPPM) 前篇内容:①电池管理IC(Charger)了解一下&…...
大数据模型的选择与安装
大数据模型的选择和安装是一个复杂的过程,涉及多个因素,包括模型的通用能力、特定任务的性能、数据效率、评估完整性、成本以及部署的硬件和软件环境。以下是一些关于大数据模型选择与安装的考虑因素和步骤: 选择大数据模型的考虑因素&#…...
React 之 lazy(延迟加载)(十七)
lazy 能够让你在组件第一次被渲染之前延迟加载组件的代码。 在组件外部调用 lazy,以声明一个懒加载的 React 组件: import { lazy } from react;const MarkdownPreview lazy(() > import(./MarkdownPreview.js)); 配合 Suspense 实现懒加载组件 //App.js imp…...
Node.js -- 会话控制
文章目录 1. 会话介绍2. cookie 相关操作2.1 cookie 设置2.2 删除 cookie2.3 获取cookie 3. session 相关操作4. cookie 和session 的区别5. 补充知识 -- CSRF跨站请求伪造6. token 1. 会话介绍 所谓会话控制就是对会话进行控制 HTTP是一种无状态的协议,它没有办法…...
做抖店不能踩的几个坑,新手要照做,老玩家要听劝~
我是王路飞。 很多人都说抖店的运营很简单,选选品、对接一下达人,就可以坐等店铺出单了。 这话骗骗还没开店的小白也就得了,但凡做抖店超过一个月的,都不会相信这句话。 细心耐心是做抖店最基本的态度。 拿到一个好结果的前提…...
【Kibana】快速上手Kibana平台(KQL)
文章目录 快速使用Kibana平台常用查询语句KQL基本查询覆合查询模糊查询 目前市面上大部分的公司的日志系统都是使用ELK系统,因此我们进行工作必须得掌握Kibana平台的基本使用,这里主要说明怎么“快速使用Kibana平台”以及记录一些常用的“KQL语言”。 快…...
全方位入门git-慕课网 笔记
目录 【上传github忽略某些文件】【配置用户名和邮箱】【想要删除不需要的文件时如何进行操作】【想要给文件重命名如何操作】【想要移动文件到其他位置时如何操作】【文件有变化时,如何查看前后变化】【操作失误的情况下如何实现一键还原】【不再追踪时如何实现撤销…...
使用 Docker 部署 TaleBook 私人书籍管理系统
1)项目介绍 GitHub:https://github.com/talebook/talebook Talebook 是一个简洁但强大的私人书籍管理系统。它基于 Calibre 项目构建,具备书籍管理、在线阅读与推送、用户管理、SSO 登录、从百度/豆瓣拉取书籍信息等功能。 友情提醒&#x…...
【VLA】Vision Language Action
文章目录一、什么是世界模型(World Model)?✅ 定义:🌍 核心功能:🔧 技术原理(典型架构):二、世界模型在具身智能中的作用三、VLA(Vision-Language…...
如何3步轻松备份微博内容:Speechless免费PDF导出完整指南
如何3步轻松备份微博内容:Speechless免费PDF导出完整指南 【免费下载链接】Speechless 把新浪微博的内容,导出成 PDF 文件进行备份的 Chrome Extension。 项目地址: https://gitcode.com/gh_mirrors/sp/Speechless 在信息快速更迭的数字时代&…...
凌晨裁员3万人,史上最大裁员潮来了!
作者 | 文韬报道 | 环球电商“我们决定取消您的岗位,今天是您的最后一个工作日。”不少员工醒来才发现,岗位没了,系统权限也快没了,今天就是最后一个工作日。过去大家总觉得,只有快撑不住的公司,才会用这种…...
百考通:AI精准赋能开题报告,让学术研究全流程智能化
对于每一位学子与科研人而言,开题报告是学术研究的“第一粒扣子”,它不仅是研究方向的蓝图,更是顺利推进论文写作、获得导师认可的关键。然而,选题迷茫、文献梳理繁琐、逻辑框架搭建困难等问题,常常让开题之路步履维艰…...
STM8 Bootloader设计与CAN总线固件升级实践
1. 项目概述在嵌入式产品开发中,经常会遇到设备出厂后需要远程升级固件的需求。特别是当设备已经封装完成,无法通过常规编程接口(如SWIM、JTAG)进行烧录时,Bootloader技术就成为了解决问题的关键方案。这次出差经历让我…...
MindSpore 环境配置完全指南
1 安装与初始化 # 全局安装 OpenSpec npm install -g fission-ai/openspeclatest # 在项目目录下初始化 cd /path/to/your-project openspec init 初始化时,OpenSpec 会提示你选择使用的 AI 工具(Claude Code、Cursor、Trae、Qoder 等)。 3 O…...
Windows系统优化指南:通过安全配置提升系统性能的完整方案
Windows系统优化指南:通过安全配置提升系统性能的完整方案 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_mirrors…...
C++-string学习笔记
string学习笔记1、关键语法:1.1内联函数1.2静态成员常量1.3初始化列表1.4析构方式1.5operator1.5.1迭代器1.6strstr**1.6strcmp**string 头文件:#pragma once #include<iostream> #include<assert.h> #include<string.h> using namesp…...
三步永久保存青春记忆:GetQzonehistory让QQ空间数据永不消逝
三步永久保存青春记忆:GetQzonehistory让QQ空间数据永不消逝 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾担心多年积累的QQ空间说说突然消失?那些承载…...
2026虚拟主播动作创作工具专业选型指南,新手也能精准选对
虚拟主播产业的快速发展,推动动作创作工具向高效化、轻量化、专业化升级。随着虚拟主播行业的规范化发展,动作创作的效率与质量成为核心竞争力,传统手动绑定、专业设备驱动的模式已无法满足批量产出需求。本文基于实测数据,结合虚…...
