前端直连小票打印机,前端静默打印,js静默打印解决方案

最近公司开发了一个vue3收银系统,需要使用小票打印机打印小票,但是又不想结账的时候弹出打印预览,找了很多方案,解决不了js打印弹出的打印预览窗口!

没办法,自己写了一个winform版本的静默打印软件,开源,开源,还是特么的开源!

软件预览:

开源地址:共享打印机sprinter: 共享打印机sprinter winform+nodejs+koa

软件功能:

1、支持前端直接使用canvas 导出base64图片直接打印
2、支持word,pdf文件打印

3、支持开机启动

4、支持mqtt协议,支持远程打印,实现打印机共享功能

5、完全免费,服务器用的是阿里云99块一年的,如有需要可以自己部署

--------------

软件提供接口:

软件启动后,后显示连接字符串,打印服务基于http协议,启动后,可以访问url测试服务是否正常启动

直接访问:http://192.168.0.100:7086/

获取打印机列表

请求地址:http://192.168.0.100:7086/getPrinters

请求方式:get

局域网打印接口

请先确认局域网服务已启动并设置固定内网ip,否则ip会变化,这里以 http://192.168.0.100:7086/ 为例

  1. 打印word

请求地址:http://192.168.0.100:7086/printWord?printName=(encodeURIComponent(你的打印机名称))

请求方式:post multipart/form-data

提交字段:file 需要打印的word文件,支持doc,docx

  1. 打印pdf

请求地址:http://192.168.0.100:7086/printPdf?printName=(encodeURIComponent(你的打印机名称))

请求方式:post multipart/form-data

提交字段:file 需要打印的PDF文件

  1. 打印图片文件

请求地址:http://192.168.0.100:7086/printImage?printName=(encodeURIComponent(你的打印机名称))

请求方式:post multipart/form-data

提交字段:file 需要打印的图片文件(默认为宽度100%竖向打印,请自行调整打印图片尺寸)

  1. 打印base64图片(前端小票打印机用这个,可以使用html2canvas转成base64图片,如果打印不清晰,记得将font-size设置成bold)

请求地址:http://192.168.0.100:7086/imageBase64?printName=(encodeURIComponent(你的打印机名称))

请求方式:post json格式

提交字段:{"ImageData":"base64imagedata,不要data:image前缀"}

例如:{ImageData:"iVBORw0KGgoAAAANSUhEUgAAAj..."}

云打印-需要软件上的客户端ID

接口地址 提供一个公网地址:https://zzapi.mmteck.cn/blwy/

1、上传文件打印pdf,word,图片文件

请求地址:https://zzapi.mmteck.cn/blwy/api/printFile?printerName=(encodeURIComponent(你的打印机名称))&clientID=(你的客户端ID)

请求方式:post multipart/form-data

提交字段:file 需要打印的word文件,支持doc,docx

2、直接传文件url打印

请求地址:https://zzapi.mmteck.cn/blwy/api/printFile?printerName=(encodeURIComponent(你的打印机名称))&clientID=(你的客户端ID)

请求方式:post json格式

提交字段:url, 可以直接在浏览器访问的文件url,需要带后缀!!!

3、打印base64图片

请求地址:https://zzapi.mmteck.cn/blwy/api/printBase64Image?printerName=(encodeURIComponent(你的打印机名称))&clientID=(你的客户端ID)

请求方式:post json格式

提交字段:{"imageData":"base64imagedata,不要data:image前缀"}

例如:{imageData:"iVBORw0KGgoAAAANSUhEUgAAAj..."}

打印效果:

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

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

相关文章

面试真题 | 操作系统中断知识

操作系统中断知识 什么是中断?在嵌入式系统中,为什么中断很重要? 参考答案 中断是计算机系统中的一种机制,用于在当前执行的程序或任务被中断处理程序(Interrupt Service Routine,ISR)中断执行时…

【鸿蒙学习笔记】Stage模型

官方文档:Stage模型开发概述 目录标题 Stage模型好处Stage模型概念图ContextAbilityStageUIAbility组件和ExtensionAbility组件WindowStage Stage模型-组件模型Stage模型-进程模型Stage模型-ArkTS线程模型和任务模型关于任务模型,我们先来了解一下什么是…

鸿蒙语言基础类库:【@ohos.util.ArrayList (线性容器ArrayList)】

线性容器ArrayList 说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 …

Oracle 确认被锁对象

1. 被锁Session查询 --被锁Session SELECT GV$SESSION.SID, GV$SESSION.SERIAL#,DBA_OBJECTS.OBJECT_NAME,GV$SESSION.OSUSER,GV$SESSION.PROGRAM FROM GV$LOCKED_OBJECT LEFT JOIN DBA_OBJECTS ON GV$LOCKED_OBJECT.OBJECT_ID DBA_OBJECTS.OBJECT_ID LEFT JOIN GV$SESSION …

基于Java中的SSM框架实现疫情冷链追溯系统项目【项目源码+论文说明】

基于Java中的SSM框架实现疫情冷链追溯系统演示 摘要 近几年随着城镇化发展和居民消费水平的不断提升,人们对健康生活方式的追求意识逐渐加强,生鲜食品逐渐受到大众青睐,诸如盒马鲜生、7-fresh等品牌生鲜超市,一时间如雨后春笋般迅…

合合信息大模型加速器重磅上线,释放智能文档全新可能

目录 0 写在前面1 高速文档解析引擎:拓宽大模型认知边界2 文本嵌入模型acge:克服大模型感知缺陷3 行业赋能:以百川智能为例总结 0 写在前面 随着人工智能技术的飞速发展,大模型以强大的数字处理能力和深度学习能力,不…

Canvas:掌握图像变换合成与裁剪状态像素操作

想象一下,用几行代码就能创造出如此逼真的图像和动画,仿佛将艺术与科技完美融合,前端开发的Canvas技术正是这个数字化时代中最具魔力的一环,它不仅仅是网页的一部分,更是一个无限创意的画布,一个让你的想象…

java使用poi-tl模版引擎导出word之if判断条件的使用

文章目录 模版中if语句条件的使用1.数据为False或空集合2.非False或非空集合 模版中if语句条件的使用 如果区块对的值是 null 、false 或者空的集合,位于区块中的所有文档元素将不会显示,这就等同于if语句的条件为 false。语法示例:{{?stat…

openFileInput 内部保持的数据如何删除

在Android中,openFileInput 是用于从设备内部存储中读取文件的API,但它本身并不提供直接删除文件的功能。要删除通过 openFileInput 读取的文件,你需要使用其他方法。以下是如何删除内部存储中文件的步骤和说明: 步骤 获取文件路…

Python库 - PyMC3

PyMC3 是一个用于概率编程和贝叶斯统计建模的Python库。它提供了一种灵活且强大的方式来构建复杂的概率模型. 主要特点 概率编程:PyMC3允许用户通过Python代码定义概率模型,包括随机变量、概率分布和条件依赖关系。贝叶斯推断:PyMC3支持多种…

视图库对接系列(GA-T 1400)十四、视图库对接系列(本级)新增、修改订阅

说明 之前我们已经对接的设备,设备的话比较简单,是设备主动推送数据到平台的。 相信大家已经会了,那今天开始的话,我们来做对接平台,相对难点点。 但搞懂了核心的订阅流程的话,其实就不难了。 对接平台 订阅接口 订阅接口的话,有几个,添加、查询、更新、删除、取消…

Centos解决服务器时间不准的问题

CentOS 系统时间老是自己变化可能有以下几个原因: 硬件时钟问题:服务器的硬件时钟可能出现故障或不准确。 时区设置错误:如果时区设置不正确,可能导致显示的时间与实际期望的时间不符。 系统服务异常:与时间同步相关…

Linux镜像源设置不再难:一键脚本,新手也能成为优化高手(一键切换镜像源/Docker一键安装脚本)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 更换镜像源 📒📝 一键切换软件源📝 Docker一键安装脚本⚓️ 相关链接 ⚓️📖 介绍 📖 在国内,Linux系统用户经常会遇到下载软件包时速度慢的问题,这通常是因为默认的镜像源并不总是最优选择。对于新手来说,手动设置…

亚马逊速卖通卖家必看:自养号测评策略,下单高效防关联全攻略

在跨境电商的激烈竞争中,自养号测评策略已成为众多卖家追求低成本、高效推广的优选路径。然而,其成功实施离不开一系列精心策划与严格执行的关键要素。以下是对这些核心条件的深入剖析,旨在指导您安全、有效地构建并运营自养号测评体系。 一、…

Git: fatal: cannot lock ref‘HEAD‘: Unable to create

删除锁文件 并且你确信没有其他Git进程正在运行,可能是因为某个Git进程在之前异常终止,留下了锁文件。这些文件通常位于.git目录的某个子目录中,如.git/index.lock、.git/refs/heads/master.lock(如果分支名不是master&#xff0…

【内网渗透】MSF渗透阶段的常用指令笔记

目录 渗透阶段划分 msfvenom 常用参数 各平台生成payload命令 Meterpreter Meterpreter的常用命令 基本命令 常用命令 针对安卓手机的一些命令 针对Windows的一些命令 文件系统命令 生成木马反弹shell(以linux靶机为例) 木马生成 配置监控 攻击利用 渗透阶段划分…

从零开学C++:入门

引言:经过C语言和数据结构等编程知识的洗礼,到了暑假,我们就将要踏上C编程语言的学习了,C的学习难度比python等其他语言的学习难度更大,但是我们已经熟练地掌握了C语言的知识,相信学习起来C应该还是会简单许…

「typescript」Typescript 的基础类型有哪些

TypeScript 是一种强类型编程语言,它建立在 JavaScript 的基础上,为开发者提供了更丰富的类型系统和更严格的编译时检查。TypeScript 的基础类型主要包括以下几种: 布尔类型(Boolean): 表示逻辑值&#xff…

什么是软件定义安全SDSec

一、软件定义安全SDSec产生的背景 软件定义安全(Software Defined Security,SDSec)的产生背景主要源于传统网络安全防护方法在面对复杂网络环境时的不适应性,以及软件定义网络(SDN)技术的发展和应用。 SD…

东方博宜1625 - 谁的年龄大

问题描述 甲乙两个人在公园相遇,甲说我今年 n 岁了( n 是一个两位的整数,个位和十位不相等),乙说,太巧了,你的年龄倒过来,就是我的年龄,请问两个人谁的年龄更大&#xf…