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

若依框架之简历pdf文档预览功能

一、前端

(1)安装插件vue-pdf:npm install vue-pdf

(2)引入方式:import pdf from "vue-pdf";

(3)components注入方式:components:{pdf}

(4)前端预览按钮设置

         <el-buttonsize="mini"type="text"icon="el-icon-view"@click="handleShow(scope.row)"v-hasPermi="['resumes:resumes:show']">预览</el-button>

 (5)预览弹窗

    <!-- 简历预览框 --><el-dialog :title="title" :visible.sync="show" width="800px"  append-to-body><pdf v-for="pdfPage in previewData.pdfPages" :key="pdfPage" :page="pdfPage" :src="previewData.src"width="100%"></pdf></el-dialog>

 (6)预览的参数设置

      //简历预览弹窗show:false,//pdf属性previewData:{type:"",src:"",pdfPages:[]},

 (7)方法实现,调用showResume方法

将showResume方法返回数据的形式设置成blob流的形式


export function showResume(id){return request({url: '/resumes/resumes/show/' + id,method: 'get',responseType: 'blob'})
    handleShow(row){const id = row.idshowResume(id).then(res => {this.show = true;this.title="简历预览"let blob = new Blob([res]);this.previewData.type="pdf";this.previewData.src=URL.createObjectURL(blob);let loadingTask=pdf.createLoadingTask(this.previewData.src);loadingTask.promise.then(pdf=>{this.previewData.pdfPages=pdf.numPages;})});},

二、后端

(1)show方法的实现,入参是前端传回来的简历的id值,根据id值获取简历的存储路径(简历存储在了本地)

    @PreAuthorize("@ss.hasPermi('resumes:resumes:show')")@GetMapping("/show/{id}")public ResponseEntity<InputStreamResource> show(@PathVariable Long id) throws IOException {Resumes resumes=new Resumes();resumes=resumesService.selectResumesById(id);String path=resumes.getFileUrl();FileSystemResource file = new FileSystemResource(path);// 设置响应头HttpHeaders headers = new HttpHeaders();headers.add("Content-Disposition", String.format("attachment; filename=\"%s\"", file.getFilename()));return ResponseEntity.ok().headers(headers).contentLength(file.contentLength()).contentType(MediaType.parseMediaType("application/octet-stream")).body(new InputStreamResource(file.getInputStream()));}

三、实现效果

相关文章:

若依框架之简历pdf文档预览功能

一、前端 &#xff08;1&#xff09;安装插件vue-pdf&#xff1a;npm install vue-pdf &#xff08;2&#xff09;引入方式&#xff1a;import pdf from "vue-pdf"; &#xff08;3&#xff09;components注入方式&#xff1a;components:{pdf} &#xff08;4&…...

酷瓜云课堂(内网版)v1.1.8 发布,局域网在线学习平台方案

更新layui-v2.9.20文章复用课程期限优化编辑器内容自动提交联系方式增加抖音二维码修正课时详情页目录高亮问题修正CommentInfo中点赞判断精简AccountSearchTrait优化kg_h5_index_url()优化CourseUserTrait优化kg_setting()优化CsrfToken 系统介绍 酷瓜云课堂内网版&#xff…...

python语音机器人(青云客免费api)

强调&#xff1a;不用登录注册&#xff0c;直接使用就好 青云客智能聊天机器人API python代码&#xff0c;直接可以运行&#xff1a; 1、安装库&#xff1a; pip install requests pyttsx3 SpeechRecognition sounddevice numpy scipy2、完整代码&#xff1a; import request…...

使用ArcGIS/ArcGIS pro绘制六边形/三角形/菱形渔网图

在做一些尺度分析时&#xff0c;经常会涉及到对研究区构建不同尺度的渔网进行分析&#xff0c;渔网的形状通常为规则四边形。构建渔网的方法也很简单&#xff0c;使用ArcGIS/ArcGIS Pro工具箱中的【创建渔网/CreateFishnet】工具来构建。但如果想构建其他形状渔网进行相关分析&…...

5.系统学习-PyTorch与多层感知机

PyTorch与多层感知机 前言PyTroch 简介张量&#xff08;Tensor&#xff09;张量创建张量的类型数据类型和 dtype 对应表张量的维度变换&#xff1a;张量的常用操作矩阵或张量计算 Dataset and DataLoaderPyTorch下逻辑回归与反向传播数据表格 DNN&#xff08;全连结网络&#x…...

AIGC与虚拟身份及元宇宙的未来:虚拟人物创作与智能交互

个人主页&#xff1a;云边有个稻草人-CSDN博客 目录 引言 一、AIGC在元宇宙中的作用 1.1 AIGC与虚拟人物创作 1.1.1 生成虚拟人物外观 1.1.2 个性化虚拟角色设计 1.2 AIGC与虚拟角色的行为与交互 1.2.1 行为生成与强化学习 1.2.2 对话生成与自然语言处理 二、AIGC实现…...

基于大模型LLM 应用方案

现如今LLM 应用 面临的主要问题 准确性&#xff0c;2. 高成本&#xff0c;3. 专业性&#xff0c;4. 时效性&#xff0c;5. 安全性 信息偏差/幻觉 (大模型由于数据缺陷/知识边界 会使用 可靠性下降)知识更新滞后性 &#xff08;LLM 基于静态数据集训练&#xff0c;可能导致知识更…...

实用技巧:关于 AD修改原理图库如何同步更新到有原理图 的解决方法

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/144738332 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…...

区块链平台安全属性解释

区块链平台安全属性解释 双向认证 解释:双向认证是指在通信过程中,**通信双方都需要对对方的身份进行验证,确保对方是合法的、可信任的实体。**只有双方身份都得到确认后,通信才会被允许进行,从而防止非法用户的接入和数据的窃取或篡改。举例:在基于区块链和联邦学习的数…...

1228作业

思维导图 作业 TCP的cs模型 服务器 //服务器 #include <myhead.h> #define PORT 6667 #define IP "192.168.124.94" #define BACKLOG 128 int main(int argc, const char *argv[]) {//创建套接字int oldfd socket(AF_INET,SOCK_STREAM,0);if(oldfd-1){perro…...

Machine-learning the skill of mutual fund managers

Machine-learning the skill of mutual fund managers – 论文阅读 文章目录 Machine-learning the skill of mutual fund managers -- 论文阅读AbstractIntroductionQuestionMain findingscontributionsliterature reviewDataSampleHoldings-based characteristicsModelOptima…...

Windows下Python+PyCharm的安装步骤及PyCharm的使用

Windows下PythonPyCharm的安装步骤及PyCharm的使用 文章目录 Windows下PythonPyCharm的安装步骤及PyCharm的使用一、Python的安装&#xff08;1&#xff09;环境准备&#xff08;2&#xff09;Python安装&#xff08;3&#xff09;pip组件的安装 二、PyCharm的安装&#xff08;…...

Anaconda+PyTorch(CPU版)安装

1.Anaconda下载 Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 如果已安装python&#xff0c;下载之前要彻底删除之前下载的python 2.Anaconda安装 3.添加环境变量 //根据实际安装路径进行更改 D:\Anaconda D:\Anaconda\Scripts D:\…...

第 28 章 - ES 源码篇 - Elasticsearch 启动与插件加载机制解析

前言 不管是什么框架&#xff0c;启动类里面做的一定是初始化的工作&#xff01; 启动 ES 节点的启动逻辑&#xff0c;全部都在 org.elasticsearch.bootstrap 包下。 启动类为&#xff1a;Elasticsearch#main(final String[] args) 与大多数框架启动类一致。启动类主要负责的…...

机床数据采集网关在某机械制造企业的应用

随着工业4.0时代的到来&#xff0c;智能制造已成为制造业转型升级的重要方向。数控机床作为现代制造业的核心设备&#xff0c;其运行状态和加工参数的数据实时采集与分析对于提升生产效率、优化生产流程具有关键意义。 背景概述 某机械制造企业拥有多台数控机床&#xff0c;这…...

美团Android开发200道面试题及参考答案(上)

http 三次握手 / 四次挥手具体过程,信号量的变化,只有两次握手行不行 三次握手过程: 第一次握手:客户端向服务器发送一个 SYN(同步)标志位为 1 的 TCP 报文段,其中包含客户端的初始序列号(ISN),此时客户端进入 SYN_SENT 状态,表示客户端请求建立连接。第二次握手:服…...

MQTT协议的应用场景及特点和常见的概念03

发布者发送数据---》代理软件Broker---》订阅者接收数据 发布者和订阅者进行隔离 1.空间上的隔离 2.时间上的隔离 MQTT常见的应用场景&#xff1a;物联网行业 MQTT常见的特点: 1.轻量级&#xff1a;MQTT协议占用的系统资源较少&#xff0c;数据报文较小 2.可靠性较强&#xff1…...

电脑缺失sxs.dll文件要怎么解决?

一、文件丢失问题&#xff1a;以sxs.dll文件缺失为例 当你在运行某个程序时&#xff0c;如果系统提示“找不到sxs.dll文件”&#xff0c;这意味着你的系统中缺少了一个名为sxs.dll的动态链接库文件。sxs.dll文件通常与Microsoft的.NET Framework相关&#xff0c;是许多应用程序…...

数据处的存储与处理——添加数组

Numpy模块中的append()函数和insert()函数 1、append()函数的使用 append(arr,values,axisNone) arr 必选&#xff0c;要添加元素的数组 values 必选&#xff0c;要添加的元素数组 axis 可选&#xff0c;默认值为None。当省略该参数时&#xff0c;表示在…...

24-12-28-pytorch深度学习CUDA的GPU加速环境配置步骤

文章目录 pytorch深度学习CUDA的GPU加速环境配置步骤1. 更新cuda驱动2. 更新完成cuda驱动后&#xff0c;查看对应的驱动版本3. 根据驱动的版本号&#xff0c;下载对应的cuda-toolkit4. CUDA是否配置成功5. 配置CUDNN6. 配置torch pytorch深度学习CUDA的GPU加速环境配置步骤 1.…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文 现有方法 CRADLE 和 LEMON&#xff0c;依赖模型推理阶段输出进行差分测试&#xff0c;但在训练阶段是不可行的&#xff0c;因为训练阶段直到最后才有固定输出&#xff0c;中间过程是不断变化的。API 库覆盖低&#xff0c;因为各个 API 都是在各种具体场景下使用。…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关

在水泥厂的生产流程中&#xff0c;工业自动化网关起着至关重要的作用&#xff0c;尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关&#xff0c;为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多&#xff0c;其中不少设备采用Devicenet协议。Devicen…...