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

VUE前端HTML静默打印(不弹出打印对话框)PDF简单方案

前言

在做打印功能的时候,以前大部分客户端都是用C#做的,静默打印(也就是不弹出打印对话框)比较简单。

但是使用浏览器作为客户端,静默打印(也就是不弹出打印对话框)做起来就比较困难。困难的原因是浏览器的各种限制,浏览器并不支持这方面的更改

在现有使用vue开发的项目中,有个比较简单的处理方式就是使用 electron-hiprint

参考地址:https://gitee.com/CcSimple/electron-hiprint#%E4%BD%BF%E7%94%A8-pdf-%E6%89%93%E5%8D%B0%E5%8A%9F%E8%83%BD

也就是本来是浏览器去调用打印控件,现在直接在对应电脑上安装一个程序,然后浏览器去调用该程序。

从
浏览器 -> 打印
改为
浏览器 -> electron-hiprint -> 打印

开始验证

打印有很多种方法,比如vue的html表格等,但是为了验证方便,我直接从后端接口返回一个pdf,改pdf直接打印出来

例如

http://localhost:7000/print/download/TESTPDF.PDF

在这里插入图片描述

  • 测试:使用前端把该地址直接打印出来

安装electron-hiprint 程序

下载地址:
https://gitee.com/CcSimple/electron-hiprint/releases

我使用的是window64位系统,所以安装

在这里插入图片描述

安装后打开,进行配置

只需要简单配置一个参数:

在这里插入图片描述
在这里插入图片描述

TOKEN设备修改为:TEST_PRINT

同时打开电脑获取打印机名称、打印机名称,不填则默认打印机

在这里插入图片描述

KONICA MINOLTA 205i

在VUE 项目中使用 electron-hiprint

使用npm

npm install vue-plugin-hiprint

或使用yarn

yarn add vue-plugin-hiprint

在项目进行使用
注意:具体参数可参考官方文档

在这里插入图片描述

引入依赖

// 全局引入
// main.js
import { hiPrintPlugin } from 'vue-plugin-hiprint'
Vue.use(hiPrintPlugin, '$pluginName')// 局部引入
import { hiPrintPlugin } from 'vue-plugin-hiprint'

使用依赖


<template><el-button type="primary"  @click="PrintBtnClick">静默打印测试</el-button>
</template>
<script>// 局部引入import { hiprint } from 'vue-plugin-hiprint'export default {methods: {//指定打印机hiprint.hiwebSocket.send({ client:'TEST_PRINT', printer:'KONICA MINOLTA 205i', type: 'url_pdf', pdf_path: 'http://localhost:7000/print/download/TESTPDF.PDF' })//使用默认打印机hiprint.hiwebSocket.send({ client:'TEST_PRINT', type: 'url_pdf', pdf_path: 'http://localhost:7000/print/download/TESTPDF.PDF' })}}
</script>

测试,点击页面按钮,则可直接打印

出现的问题

有时候,打印机会报错,说没有指定纸张,这个报错可见 issue
https://mp.weixin.qq.com/s/E-ZfuKLH3-GvKn4AosRvaw

在这里插入图片描述

解决方案,设置打印机首选项

在这里插入图片描述

相关文章:

VUE前端HTML静默打印(不弹出打印对话框)PDF简单方案

前言 在做打印功能的时候&#xff0c;以前大部分客户端都是用C#做的&#xff0c;静默打印&#xff08;也就是不弹出打印对话框&#xff09;比较简单。 但是使用浏览器作为客户端&#xff0c;静默打印&#xff08;也就是不弹出打印对话框&#xff09;做起来就比较困难。困难的…...

大数据hive表和iceberg表格式

iceberg: https://iceberg.apache.org/ iceberg表&#xff0c;是一种面向大型分析数据集的开放表格式&#xff0c;旨在提供可扩展、高效、安全的数据存储和查询解决方案。它支持多种存储后端上的数据操作&#xff0c;并提供 ACID 事务、多版本控制和模式演化等特性&#xff0c…...

flutter 手写 TabBar

前言&#xff1a; 这几天在使用 flutter TabBar 的时候 我们的设计给我提了一个需求&#xff1a; 如下 Tabbar 第一个元素 左对齐&#xff0c;试了下TabBar 的配置&#xff0c;无法实现这个需求&#xff0c;他的 配置是针对所有元素的。而且 这个 TabBar 下面的 滑块在移动的时…...

一个引发openssl崩溃问题案例

1 背景 最近用libevent写了一个https代理功能&#xff0c;在调研的时候&#xff0c;遇到了一个项目用到了本地多个openssl库引发的ssl握手崩溃问题。 2 开发环境 项目库版本号依赖项libeventlibevent-2.1.8-stableopenssl 1.1openssl1.0u / 1.1.1w / 3.3.1...... 3 问题现象…...

如何申请抖音本地生活服务商?3种方式优劣势分析!

随着多家互联网大厂在本地生活板块的布局力度不断加大&#xff0c;以抖音为代表的头部互联网平台的本地生活服务商成为了创业赛道中的大热门&#xff0c;与抖音本地生活服务商怎么申请等相关的帖子&#xff0c;更是多次登顶创业者社群的话题榜单。 就目前的市场情况来看&#x…...

【项目-轻量级Web Server lock类】

信号同步机制封装 Lock类信号量——sem类初始化信号量sem_init()销毁信号量sem_destory()对信号量进行P操作sem_wait()对信号进行V操作sem_post() 互斥锁——locker类初始化互斥量pthread_mutex_init()销毁互斥量pthread_mutex_destroy()给互斥锁加锁pthread_mutex_lock()解锁互…...

数据分析_计划

我做大数据的有6年了&#xff0c;以前都是用sql&#xff0c;或者spark&#xff0c;java&#xff0c;scala&#xff0c;python去做。现在这些平台搭建、维护、大多数都是搭建一次就完了&#xff0c;而且维护大多是大厂直接用云平台去做。ETL也是就做一次就够了&#xff0c;我们公…...

LDAPWordlistHarvester:基于LDAP数据的字典生成工具

关于LDAPWordlistHarvester LDAPWordlistHarvester是一款功能强大的字典列表生成工具&#xff0c;该工具可以根据LDAP中的详细信息生成字典列表文件&#xff0c;广大研究人员随后可以利用生成的字典文件测试目标域账号的非随机密码安全性。 工具特征 1、支持根据LDAP中的详细信…...

dhtmlx-gantt甘特图数据展示

官网文档&#xff1a;甘特图文档 实现效果&#xff1a; 首先需要下载 dhtmlx-gantt组件 npm i dhtmlx-gantt //我项目中使用的是"dhtmlx-gantt": "^8.0.6" 这个版本&#xff0c;不同的版本api或是文档中存在的方法稍有差异 界面引用 <template>&l…...

《云原生安全攻防》-- 容器攻击案例:Docker容器逃逸

当攻击者获得一个容器环境的shell权限时&#xff0c;攻击者往往会尝试进行容器逃逸&#xff0c;利用容器环境中的错误配置或是漏洞问题&#xff0c;从容器成功逃逸到宿主机&#xff0c;从而获取到更高的访问权限。 在本节课程中&#xff0c;我们将详细介绍一些常见的容器逃逸方…...

初学者指南:如何搭建和配置 Nginx 服务器

初学者指南&#xff1a;如何搭建和配置 Nginx 服务器 Nginx 是一个高性能的 HTTP 和反向代理服务器&#xff0c;也是一个 IMAP/POP3/SMTP 代理服务器。本文将详细介绍如何在 Linux 上安装、配置和管理 Nginx 服务器。 一、安装 Nginx Nginx 可以安装在多种操作系统上&#x…...

[AHK] WinHttpRequest.5.1报错 0x80092004 找不到对象或属性

目录 背景描述 用浏览器访问&#xff0c;正常返回 ​编辑 AHK v2官方示例源代码 AHK v2运行结果报错(0x80092004) 找不到对象或属性 用thqby大佬的WinHttpRequest.ahk库测试报错 0x80092004 找不到对象或属性 附&#xff1a; 用Apifox访问&#xff0c;也正常返回 AHK v1 …...

`speech_recognition` 是一个流行的库

在Python中&#xff0c;speech_recognition 是一个流行的库&#xff0c;用于从各种来源&#xff08;如麦克风、文件等&#xff09;进行语音识别。以下是您提到的技术名称和相应的Python代码示例。 技术名称 语音识别&#xff08;Speech Recognition&#xff09;&#xff1a;这…...

MFC Ribbon菜单 - 中英文实时切换方法

简介 最近在搞一个老外的项目&#xff0c;本来谈的好好的&#xff0c;纯英文界面。项目接近尾声了&#xff0c;又提出了中英文实时切换的新需求&#xff0c;没办法就只能想办法&#xff0c;毕竟客户最大嘛。 实现方法 还好本来的ribbon英文菜单不复杂&#xff0c;就用纯C编码…...

MFC程序创建word,创建表格,写入数据

文章目录 1、MFC程序功能&#xff1a;2、MFC程序实现2.1 创建项目2.2 添加word操作类2.3 添加word资源2.4 编写代码&#xff0c;实现将数据写入到word2.5 运行程序、验证功能3、工程代码下载 1、MFC程序功能&#xff1a; 创建word文档&#xff1b;向文档中写入字符串&#xff…...

FPGA:基于复旦微FMQL10S400 /FMQL20S400 国产化核心板

复旦微电子是国内集成电路设计行业的领军企业之一&#xff0c;早在2000年就在香港创业板上市&#xff0c;成为行业内首家上市公司。公司的RFID芯片、智能卡芯片、EEPROM、智能电表MCU等多种产品在市场上的占有率位居行业前列。 今天介绍的是搭载复旦微 FMQL10S400/FMQL20S400的…...

centos下使用yum安装keepalived工具

1、安装如下rpm包&#xff0c;不安装此包在装keepalived时会报错 mkdir keepalived_rpm cd keepalived_rpm/ wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-community-libs-compat-8.0.36-1.el7.x86_64.rpm 2、使用yum进行keepalived的安装 yum -y install keepal…...

无人机图像目标检测

本仓库是人工智能课程的课程作业仓库&#xff0c;主要是完成无人机图像目标检测的任务&#xff0c;我们对visdrone数据集进行了处理&#xff0c;在yolo和ssd两种框架下进行了训练和测试&#xff0c;并编写demo用于实时的无人机图像目标检测。 requirements依赖&#xff1a; ss…...

JSqlParser 解析 sql

目录 前言一、Maven依赖二、获取sql中的表名三、获取sql中的具体信息 前言 JSqlParser是一个 SQL 语句解析器。它将 SQL 语句转换为可遍历的 Java 类层次结构&#xff0c;可以方便的用代码对 SQL 语句进行解析&#xff0c;修改等操作。 官网 api 文档和 github 地址如下&…...

Vue中使用mind-map实现在线思维导图

概述 在前面的文章Vue中实现在线画流程图实现中介绍了流程图的在线绘制&#xff0c;在本文&#xff0c;给大家分享一下基于mind-map实现在线的思维导图&#xff0c;并实现&#xff1a;1. 导图导出为图片&#xff1b;2. 打开xmind文件。 实现效果 实现 1. mind-map简介 simp…...

【性能评估】信标辅助双跳认知无线电无线中继选择方案的性能评估研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

2026 谷歌 GEO 已成流量主战场,不懂 AI 搜索直接掉队

&#x1f4c9; 三个信号同时出现&#xff0c;意味着一个时代结束了&#xff1a;① 你的Google/百度自然搜索流量&#xff0c;连续两个季度下滑超过15%② 你精心优化的"关键词"排名&#xff0c;依然带不来预期的转化③ 你的目标用户&#xff0c;开始在 ChatGPT、Perpl…...

Unity资源提取原理与uTinyRipper实战指南

1. 为什么你第一次打开uTinyRipper时会“卡在加载界面”——这不是软件坏了&#xff0c;是Unity资源结构在对你说话 “零基础入门&#xff1a;uTinyRipper Unity资产提取完全指南”这个标题里藏着一个被绝大多数新手忽略的关键前提&#xff1a; uTinyRipper不是万能解包器&…...

3分钟搞定B站缓存:这款神器让视频转换超简单

3分钟搞定B站缓存&#xff1a;这款神器让视频转换超简单 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾为B站视频下架而焦虑&#xff1…...

百考通:AI一键生成期刊论文写作,全流程智能化支撑,让学术创作更高效

在学术研究领域&#xff0c;期刊论文的撰写是成果输出的关键环节&#xff0c;却也让众多科研工作者与学生倍感压力&#xff1a;选题迷茫、逻辑梳理困难、格式规范复杂、内容提炼耗时&#xff0c;严重拖慢了学术成果的发表节奏。百考通&#xff08;https://www.baikaotongai.com…...

+86环境下“纸飞机“登录异常排查:第三方开源客户端的认证与网络适配测试

近期在针对一款基于 MTProto 协议的即时通讯工具进行客户端适配测试时&#xff0c;发现其官方版本在 86 号段环境下存在较为突出的登录与连接稳定性问题。本文记录问题复现过程&#xff0c;以及基于开源代码二次开发的优化实践。一、登录异常现象在 86 手机号、新设备登录场景下…...

终极免费方案:5分钟破解Cursor AI试用限制,永久享受Pro功能

终极免费方案&#xff1a;5分钟破解Cursor AI试用限制&#xff0c;永久享受Pro功能 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve …...

飞机在甲板上着陆--动基线RTK深度解析:定义、应用场景和基本原理(二)

飞机在甲板上着陆–动基线RTK深度解析&#xff1a;定义、应用场景和基本原理&#xff08;二&#xff09;接上文3.3 时序图&#xff1a;静态模式 vs 动基线模式的对比图2&#xff1a;动基线RTK时间对齐与外推机制详解#mermaid-svg-ImdeLLU9IW88fmy6{font-family:"trebuchet…...

Spring Boot项目升级FastJson2踩坑记:三个依赖缺一不可,附完整配置代码

Spring Boot项目升级FastJson2实战指南&#xff1a;从依赖管理到配置优化 最近在重构一个老项目时&#xff0c;我决定将FastJson1升级到FastJson2版本。本以为只是简单修改下依赖版本号就能搞定&#xff0c;结果却遭遇了各种"类找不到"的报错。经过两天折腾和源码研…...

从FAST到GAMPII:一份给GNSS新手的PPP数据下载与预处理避坑指南

从FAST到GAMPII&#xff1a;GNSS数据预处理全流程实战指南 1. 精密单点定位的数据基石 当你第一次打开GAMP软件准备进行北斗系统的精密单点定位分析时&#xff0c;是否曾被各种数据文件搞得晕头转向&#xff1f;观测文件(o)、导航文件(n/p)、差分码偏差(DCB)文件&#xff0c;…...