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

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;}}
}
http://www.lryc.cn/news/349275.html

相关文章:

  • 深度学习入门到放弃系列 - 阿里云人工智能平台PAI部署开源大模型chatglm3
  • GPT-4o,AI实时视频通话丝滑如人类,Plus功能免费可用
  • 【优选算法】——Leetcode——202—— 快乐数
  • 华大基因CEPO-尹烨说学习与生活
  • C#中json数据序列化和反序列化的最简单方法(C#对象和字符串的相互转换)
  • logback 日志脱敏
  • element-ui的表单中,输入框、级联选择器的长度设置
  • 深入了解 npm:Node.js 包管理工具详解
  • 记一次跨域问题
  • 第9章 负载均衡集群日常维护
  • 鸿蒙内核源码分析(消息封装篇) | 剖析LiteIpc(上)进程通讯内容
  • Charger之三动态电源路径管理(DPPM)
  • 大数据模型的选择与安装
  • React 之 lazy(延迟加载)(十七)
  • Node.js -- 会话控制
  • 做抖店不能踩的几个坑,新手要照做,老玩家要听劝~
  • 【Kibana】快速上手Kibana平台(KQL)
  • 全方位入门git-慕课网 笔记
  • 使用 Docker 部署 TaleBook 私人书籍管理系统
  • 分布式系统的一致性与共识算法(一)
  • 创建一个Spring Boot项目
  • ansible -playbook运维工具、语法、数据结构、命令用法、触发器、角色
  • web前端之sass中的颜色函数、active按钮激活、hover鼠标悬浮、disabled禁用、scss循环、css
  • 交通地理信息系统实习教程(二)
  • Shell脚本——批量清理Kubernetes集群中Evicted状态的pod
  • (深度估计学习)Win11复现DepthFM
  • cocos creator 帧率60 不生效meta50 能刷新到90
  • 探讨 cs2019 c++ 的STL 库中的模板 conjunction 与 disjunction
  • 【核弹】我的第一款IDEA插件
  • 【工作篇】软件工程师的知识基础(持续更新)