在el-image组件的预览中添加打印功能(自定义功能)

思路:给图片添加点击事件,通过js获取预览的工具栏,在工具栏中添加自定义按钮及事件

1、html 中 image标签

 <el-image

   style="width: 139px;

   height: 89px"

   :src="fileUrl"

   :preview-src-list="[fileUrl]"

    @click="handleImageClick(fileUrl)" //添加点击事件

/>

2、再点击事件中,通过js操作dom,添加自定义按钮事件

   handleImageClick(fileUrl) {

      this.$nextTick(() => {

        const viewer = document.querySelector('.el-image-viewer__wrapper') //工具栏的dom

        if (viewer) {

          // 防止重复添加

          if (!document.querySelector('.custom-print-btns')) {

            const btn = document.createElement('button') //创建按钮

            btn.className = 'custom-print-btns'  //按需设计样式

            btn.innerHTML = '<i class="el-icon-printer"></i>'

            btn.onclick = () => this.printImage(fileUrl) //点击按钮触发事件

            const btnGroup = viewer.querySelector('.el-image-viewer__actions__inner')

            if (btnGroup) {

              btnGroup.appendChild(btn) //在工具中添加按钮

            }

          }

        }

      })

    },

 

3、添加后的图

 

4、打印事件

 printImage(fileUrl) {

      const printWindow = window.open('', '_blank')

      printWindow.document.write(`

        <html>

          <head>

            <title>打印图片</title>

            <style>

              body { text-align: center; margin: 0; padding: 0; }

              img { max-width: 100%; max-height: 100vh; margin: auto; }

            </style>

          </head>

          <body>

            <img src="${fileUrl}" />

            <script>

              window.onload = function() {

                setTimeout(function() {

                  window.print();

                  window.close();

                }, 200);

              }

            <\/script>

          </body>

        </html>

      `)

      printWindow.document.close()

    },

 

5、结果图

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.tpcf.cn/pingmian/86048.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TongWeb替换tomcat

1、背景 国家近年来大力推进信息技术应用创新产业&#xff08;信创&#xff09;&#xff0c;要求关键领域采用自主可控的国产软硬件。Tomcat作为国外开源产品&#xff0c;存在潜在的安全风险和技术依赖。TongWeb作为国产中间件&#xff0c;符合信创目录要求&#xff0c;满足政府…

联合语音和文本机器翻译,支持多达100种语言(nature子刊论文研读)

简介&#xff1a; &#x1f30d; SEAMLESSM4T 是一种单一模型&#xff0c;实现了跨越多达 101 种源语言和多种目标语言的语音到语音、语音到文本、文本到语音和文本到文本翻译及自动语音识别。&#x1f680; 该模型性能显著超越现有级联系统&#xff0c;特别是在语音到文本和语…

网站公安网安备案查询API集成指南

网站公安网安备案查询API集成指南 引言 随着互联网应用的日益普及&#xff0c;网络安全和个人隐私保护越来越受到重视。公安网安备案作为保障网络安全的重要措施之一&#xff0c;对于确保网站合法合规运营具有重要意义。为了帮助开发者更加便捷地获取网站的公安网安备案信息&a…

如何用远程调试工具排查 WebView 与原生通信问题(iOS或Android)

WebView 在移动端开发中的角色越来越关键&#xff0c;尤其在混合架构&#xff08;Hybrid&#xff09;项目中&#xff0c;它作为前端与原生的桥梁&#xff0c;承载了大量交互行为。但这个桥梁并不总是稳固&#xff0c;尤其是在涉及 JSBridge 通信 时&#xff0c;前端调用原生接口…

使用 spark-submit 运行依赖第三方库的 Python 文件

python文件在spark集群运行真的麻烦&#xff0c;烦冗 spark运行分为了三个模式&#xff0c;本地模式/client模式/cluster模式 文章目录 本地模式client模式cluster模式参考 本地模式 现在的spark支持python3了&#xff0c;支持python2的版本已经很落后了&#xff0c;所以需要…

【android bluetooth 协议分析 05】【蓝牙连接详解2】【acl_interface_t介绍】

1. acl_interface_t 介绍 acl_interface_t 结构体及其子结构体&#xff0c;目的是封装处理 Classic、LE、SCO 连接及链路事件的回调函数&#xff0c;用于 HCI 事件与上层蓝牙协议栈的解耦分发。 system/main/shim/acl_legacy_interface.h typedef struct {void (*on_connect…

TouchDIVER Pro触觉手套:虚拟现实中的多模态交互新选择

随着虚拟现实技术的发展&#xff0c;用户对沉浸式体验的需求不断提升。TouchDIVER Pro触觉手套通过力反馈、纹理渲染和温度提示三种核心机制&#xff0c;为用户提供更真实的触觉感知体验。六个驱动点分布于五指与手掌&#xff0c;结合全手追踪与低延迟连接&#xff0c;实现精准…

想考华为HCIA-AI,应该怎么入门?

华为HCIA-AI Solution认证作为华为人工智能认证体系的起点&#xff0c;吸引了许多希望进入AI领域或提升专业技能的学习者。如果你正考虑考取这个认证&#xff0c;这份纯科普向的入门指南希望能够帮你理清学习路径和关键准备点&#xff01; 第一、明确认证目标与要求 HCIA-AI S…

【Oracle篇】Windows平台单进程多线程架构设计与实现(比对Linux多进程架构)

&#x1f4ab;《博主主页》&#xff1a; &#x1f50e; CSDN主页__奈斯DB &#x1f50e; IF Club社区主页__奈斯、 &#x1f525;《擅长领域》&#xff1a;擅长阿里云AnalyticDB for MySQL(分布式数据仓库)、Oracle、MySQL、Linux、prometheus监控&#xff1b;并对SQLserver、N…

在微服务中使用 Sentinel

在微服务中集成 Sentinel 1. 添加依赖 对于 Spring Cloud 项目&#xff0c;首先需要添加 Sentinel 的依赖&#xff1a; <!-- Spring Cloud Alibaba Sentinel --> <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-…

中断控制与实现

一、中断基本概念 1、中断 中断是一种异步事件&#xff0c;用于通知处理器某个事件已经发生&#xff0c;需要处理器立即处理。由于I/O操作的不确定因素以及处理器和I/O设备之间的速度不匹配&#xff0c;I/O设备可以通过某种硬件信号异步唤醒对应的处理器的响应&#xff0c;这些…

前端跨域解决方案(7):Node中间件

1 Node 中间件核心 1.1 为什么开发环境需要 Node 代理&#xff1f; 在前端开发中&#xff0c;我们常遇到&#xff1a;前端运行在localhost:3000&#xff0c;后端 API 在localhost:4000&#xff0c;跨域导致请求失败。而传统解决方案有以下局限性&#xff1a; 修改后端 CORS 配…

iwebsec靶场-文件上传漏洞

01-前端JS过滤绕过 1&#xff0c;查看前端代码对文件上传的限制策略 function checkFile() { var file document.getElementsByName(upfile)[0].value; if (file null || file "") { alert("你还没有选择任何文件&a…

GitHub 趋势日报 (2025年06月23日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 390 suna 387 system-prompts-and-models-of-ai-tools 383 Web-Dev-For-Beginners…

告别水印烦恼,一键解锁高清无痕图片与视频!

在这个数字化飞速发展的时代&#xff0c;无论是设计小白还是创意达人&#xff0c;都可能遇到这样的困扰&#xff1a;心仪的图片或视频因水印而大打折扣&#xff0c;创意灵感因水印而受限。别急&#xff0c;今天就为大家带来几款神器&#xff0c;让你轻松告别水印烦恼&#xff0…

LangChain4j在Java企业应用中的实战指南:构建RAG系统与智能应用-2

LangChain4j在Java企业应用中的实战指南&#xff1a;构建RAG系统与智能应用-2 开篇&#xff1a;LangChain4j框架及其在Java生态中的定位 随着人工智能技术的快速发展&#xff0c;尤其是大语言模型&#xff08;Large Language Models, LLMs&#xff09;的广泛应用&#xff0c;…

Cola StateMachine 的无状态(Stateless)特性详解

Cola StateMachine 的无状态&#xff08;Stateless&#xff09;特性详解 在现代分布式系统中&#xff0c;无状态设计是构建高可用、可扩展服务的关键原则之一。Cola StateMachine 作为一款轻量级的状态机框架&#xff0c;通过其独特的设计理念实现了良好的无状态特性。本文将深…

使用事件通知来处理页面回退时传递参数和赋值问题

背景。uniapp开发微信小程序。在当前页面需要选择条件&#xff0c;如选择城市。会打开新的页面。此时选择之后需要关闭页面回到当初的页面。但问题出现了。onLoad等事件是不会加载的。相关链接。uniapp页面通讯说明使用事件通知来处理页面回退时传递参数和赋值问题 页面之间的…

腾讯云COS“私有桶”下,App如何安全获得音频调用流程

流程图 #mermaid-svg-Phy4VCltBRZ90UH8 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Phy4VCltBRZ90UH8 .error-icon{fill:#552222;}#mermaid-svg-Phy4VCltBRZ90UH8 .error-text{fill:#552222;stroke:#552222;}#me…

基于深度学习的侧信道分析(DLSCA)Python实现(带测试)

一、DLSCA原理介绍 基于深度学习的侧信道分析(DLSCA)是一种结合深度神经网络与侧信道分析技术的密码分析方法。该方法利用深度学习模型从能量消耗、电磁辐射等侧信道信息中提取与密钥相关的特征模式。相比传统分析方法&#xff0c;DLSCA能够自动学习复杂的特征关系&#xff0c…