news 2026/4/23 17:54:55

前端采用electron-hiprint控件实现静默打印

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
前端采用electron-hiprint控件实现静默打印

1、功能需求

在进行点击打印调用PDF打印功能时候,每一次打印都需要进行手动预览确认

需要进行批量打印+静默直接打印

2、插件介绍

electron-hiprint: vue-plugin-hiprint 直接打印客户端;web无预览打印;支持 Mac、Win、Linux 系统;支持 IPP 打印、获取 MAC、IP 地址等 - Gitee.com

2.1 基本流程

2.1.1 下载插件,npm i ,npm run start

2.1.2安装依赖

在项目中财用通过 socket.io (默认端口 17521)提供服务。

npm install socket.io-client@4 --save

2.1.3项目引用+创建实例

import { io } from "socket.io-client"; const Socket = io("http://localhost:17521", { transports: ["websocket"], auth: { token: "vue-plugin-hiprint", }, }); Socket().on('success', res => { }); Socket.on('error', err => { //这里有问题需要自己在源码中进行修改抛出的err.message }); Socket.on('printerList', printerList => { console.log('打印机列表', printerList); }); Socket.on('connect', () => { console.log('Socket 连接成功'); }); Socket.on('connect_error', () => { console.log('Socket 错误关闭连接'); getSocket().close();//关闭实例 });

2.1.4 进行各项回调监听

连接成功监听、连接失败监听(文档里没写)、打印成功监听、打印失败监听、获取电脑打印机列表监听(可以主动获取)

2.2进行调用打印

批量打印进行循环调用(批量打印的所有成功失败回调会单独调用监听。需要自己判断成功失败的条数与总数进行二次判断)

// 非vue-plugin-hiprint socket.emit("news", { client, printer, type: "url_pdf", templateId: "自定义Id,用于判断任务是否成功", pdf_path: "网络PDF的下载url", });

参数项

{ client?: string; // 客户端id,连接中转服务必填 printer?: string; // 打印机名称 pages?: string; // 打印页数 subset?: string; // 奇偶页 even、odd orientation?: string; // 纸张方向 portrait、landscape scale?: string; // 缩放 noscale、shrink、fit monochrome?: boolean; // 黑白打印 true、false side?: string; // 单双面 duplex, duplexshort, duplexlong, and simplex bin?: string; // select tray to print to paperName?: string; // 纸张大小 A2, A3, A4, A5, A6, letter, legal, tabloid, statement silent?: boolean; // Silences error messages. printDialog?: boolean; // 显示打印对话框 true、false copies?: number; // 打印份数 }

二开的打包、如果只进行win32进行打包就直接调用打包命令就可以了

如果要打包到别的环境比如linux。mac等 就需要自己进行特定环境打包

也可以在作者分支上fock进行tag再次打包

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 13:32:59

stack overflow提问:程序员口述错误信息定位bug

让“我说你记”更聪明:用 Fun-ASR 实现口述错误定位 Bug 在一次深夜调试中,开发者小李盯着满屏红色异常日志,嘴里念叨着:“KeyError: session_id in user_data……这又不是第一次见。”他本想立刻搜索相关堆栈,但手指刚…

作者头像 李华
网站建设 2026/4/23 13:31:56

MyBatisPlus可以整合ASR系统吗?数据库存储识别结果方案

MyBatisPlus可以整合ASR系统吗?数据库存储识别结果方案 在智能语音应用日益普及的今天,企业对语音识别(ASR)系统的依赖不断加深。从会议纪要自动生成到客服录音分析,语音转文字已成为许多业务流程的关键环节。然而&…

作者头像 李华
网站建设 2026/4/23 13:30:26

Ventoy 启动盘制作工具制作32位PE启动盘,挽救winxp等老旧系统

Ventoy 启动盘制作工具制作32位PE启动盘主要是用于重装或挽救老旧电脑的系统。 Ventoy 启动盘的制作可以查看这篇博文》 最后只要把32位PE启动IOS 拷贝进去,鉴于现在已经很少人用32位的PE。 微PE工具箱,32位iso可以在这里下载

作者头像 李华
网站建设 2026/4/23 13:39:06

从零实现同步时序逻辑电路:触发器选型操作指南

从零构建同步时序逻辑:触发器选型实战指南在数字系统的世界里,组合逻辑决定“做什么”,而时序逻辑决定“何时做”。如果说组合逻辑是电路的肌肉,那么由触发器构成的时序结构就是它的大脑——它记住过去的状态,协调未来…

作者头像 李华
网站建设 2026/4/23 13:39:51

es客户端工具分页查询操作指南:from/size使用规范

避开深坑:Elasticsearch 分页查询实战指南你有没有遇到过这样的场景?用户在后台系统里点“下一页”,翻着翻着突然卡住,接口超时、集群报警齐发——查日志一看,from10000的请求正在疯狂消耗内存。这正是Elasticsearch中…

作者头像 李华
网站建设 2026/4/23 13:39:49

喜马拉雅内容生产:尝试用Fun-ASR自动生成节目字幕

喜马拉雅内容生产:尝试用Fun-ASR自动生成节目字幕 在音频内容爆发式增长的今天,用户不再满足于“只听”,更希望“可读、可搜、可互动”。像喜马拉雅这样的平台每天新增成千上万分钟的播客、有声书和知识课程,如果每一条都靠人工逐…

作者头像 李华