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

vue实现pdf预览功能

背景:材料上传之后点击预览实现在浏览器上预览的效果
效果如下:
在这里插入图片描述
实现代码如下:
//预览和下载操作

<el-table-column fixed="right" label="操作" width="210"><template #default="scope"><span@click="handleRowClick(scope.row)"class="table-btn btn-handle"><i class="ri-eye-line"></i>预览</span><span@click="handleDownLoadClick(scope.row)"class="table-btn btn-handle"><i class="ri-download-2-line"></i>下载</span></template></el-table-column>
// 材料预览
export function materialPreview(data) {return Http.request({url: '/file/preview',method: 'get',responseType: 'blob',data: data});}//预览弹窗<el-dialogtitle="预览":visible.sync="PreviewDialogVisible"append-to-bodywidth="70%"center><div><iframe :src="pdfSrc" width="100%" height="800px"></iframe></div></el-dialog>//data中定义的变量data() {return {pdfSrc: "",downloadUrl: "http://10.110.96.76/",PreviewDialogVisible: false,}}//预览代码handleRowClick(row) {materialPreview({fileName:row.fileName,realFileName:row.fileName,}).then((res) => {console.log(res);const blob = new Blob([res.data], { type: "application/pdf" });this.pdfSrc = window.URL.createObjectURL(blob);this.$nextTick(() => {this.PreviewDialogVisible = true;});console.log(this.pdfSrc);//window.open(this.pdfSrc) //新窗口打开,借用浏览器去打印});}//下载代码handleDownLoadClick(data) {if (data.downloadUrl != null) {window.open(this.downloadUrl + data.downloadUrl);}},

后台返回的流文件格式
在这里插入图片描述

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

相关文章:

  • (原创)Flutter与Native页面互相跳转
  • web集群学习--基于CentOS构建LVS-DR集群、配置nginx负载均衡
  • 基于 FPGA 的电机控制
  • STM32F429IGT6使用CubeMX配置IIC通信(AT2402芯片)
  • JS逆向系列之猿人学爬虫第14题-备而后动-勿使有变
  • 学cpp看的那点书
  • 【C++】常用容器-string容器
  • SSH无法连接kali,拒绝密码
  • 竞赛项目 深度学习的口罩佩戴检测 - opencv 卷积神经网络 机器视觉 深度学习
  • redis 数据结构(一)
  • 【高频面试题】JVM篇
  • 第十三次CCF计算机软件能力认证
  • 无人驾驶实战-第十二课(强化学习自动驾驶系统)(完)
  • 【flask sqlalchmey】一次性将返回的列表对象或者 一行数据对象转成dict---flask-sqlalchemy输出json格式数据
  • goland插件推荐Rider UI Theme Pack
  • 人工智能面试常识-10
  • Android JNI开发从0到1,java调C,C调Java,保姆级教程详解
  • STM32基于CubeIDE和HAL库 基础入门学习笔记:功能驱动与应用
  • 创建型模式 (Creational Patterns) 玄子Share 设计模式 GOF 全23种 + 七大设计原则
  • 【脚踢数据结构】队列(顺序和链式)
  • linux添加磁盘
  • 图片懒加载
  • scope,deep穿透的实际应用
  • Multipass虚拟机设置局域网固定IP同时实现快速openshell的链接
  • Webpack5 core-js和babel-loader区别和用法
  • 软考高级架构师——5、系统规划分析与设计方法
  • 区块链学习6-长安链部署:如何创建特定共识节点数和同步节点数的链
  • 北航基于openEuler构建工业机器人操作系统,打造“开箱即用”的机器人基础软件平台
  • 孤儿进程与僵尸进程
  • redis的基础命令01