web应用 远程调用佳博打印机进行条码打印(详细教程)

news/2024/11/29 0:45:12/

需求:

    通过html调用本地服务启动打印机,带参数去打印不同内容。

步骤:

1. 生成可直接执行的exe程序。

2. 注册服务。

3. 前端调用测试。

1. 生成可直接执行的exe程序

1.1 前提:代码测试已经通过,可看我的另一篇文章(含代码)。

1.2 按如图步骤生成jar文件

 如上图所示,生成了PrintLaben.jar的文件。

1.3 按如图步骤生成exe文件

① 先将exe4j软件下载安装

链接:https://pan.baidu.com/s/11p3jewLX4tSkxCXzOAbhWA 
提取码:wg8j 

一直下一步即可安装完成。

② 打开exe4j软件,按照该视频可进行操作,注意一定要生成没有java,带jre的exe运行程序。如何将idea的java程序打包成exe (新版,可以在没有java的电脑下运行)_哔哩哔哩_bilibili

③ 经过②步骤,拿到exe文件跟jre的文件夹,保持在同一目录下面,再把这个TSCLIB.dll的打印机本地函数库放到同一目录下,这个库可以TODO一篇文章中获取。

2. 注册服务

2.1 新建一个print.reg的注册服务文件

Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\print]
@="print"
"URL Protocol"=""[HKEY_CLASSES_ROOT\print\DefaultIcon]
@="D:\\develope\\washPrint\\PrintLabel.exe"[HKEY_CLASSES_ROOT\print\shell]
@=""[HKEY_CLASSES_ROOT\print\shell\open]
@="" [HKEY_CLASSES_ROOT\print\shell\open\command]
@="\"D:\\develope\\washPrint\\PrintLabel.exe\" \"%1\" " 

 如上图所示,其中

 D:\\develope\\washPrint\\PrintLabel.exe : 是你生成的exe程序的全路径地址

 \"%1\" :是代表可以带参数

2.2 新建后双击该文件

确认即可,打开cmd窗口,输入regedit打开,如下图所示

 如上图所示,即注册成功

2.3 打开浏览器,输入print://即可调用到PrintLabel.exe程序。

         

3.  前端调用程序

    <a href="" id="printLinks"><el-button type="primary">打印</el-button></a>

这里的需求是,带过去的参数是变化的,所以在JS中采用下列代码获取,但是注意这里要在点击这个打印前去做设置,不然传过去的参数就是空。

 var a = document.getElementById('printLinks')a.setAttribute('href', '你需要设置的内容')

中文乱码问题(通过加解密算法解决):

用了好多方式都有问题:索性就是在前端出发带参数将内容进行加密

//引入加密板块
import CryptoJS from 'crypto-js/crypto-js'//加密板块代码
const key = '1111122222333334'
var secret = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(printContent), CryptoJS.enc.Utf8.parse(key), {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
}).toString()

在打印的时候进行解密

//解密的依赖
<dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.14</version>
</dependency>//密钥 前后台一致16位
private static final String KEY = "1111122222333334";
//参数分别代表 算法名称/加密模式/数据填充方式
private static final String ALGORITHMESTR = "AES/ECB/PKCS5Padding";//解密算法public static String desEncrypt(String data) throws Exception {//decode解密//让程序自动创建keyGenerator对象,并告诉其用AES处理KeyGenerator kgen = KeyGenerator.getInstance("AES");//告诉秘钥生成器处理模式是128bit,也就是16位kgen.init(128);//拿到秘钥,KEY是我们刚刚定义的SecretKeySpec key1 = new SecretKeySpec(KEY.getBytes(), "AES");//创建密码器[算法名/加密模式/数据填充模式]Cipher cipher = Cipher.getInstance(ALGORITHMESTR);//表示密码器要使用key进行解码cipher.init(Cipher.DECRYPT_MODE, key1);//根据刚刚加密得到的结果,我们需要把info.getPassword字符串通过base64编码成cipher能识别的byte数组byte[] result = cipher.doFinal(Base64.decodeBase64(data));//测试通过,前后端AES一致,后端能转AES码[需要转为string]System.out.println("decode:" + new String(result, StandardCharsets.UTF_8));return new String(result, StandardCharsets.UTF_8);}


http://www.ppmy.cn/news/653844.html

相关文章

硬件系列(二)-------------wifi打印机之佳博wifi打印机踩坑之路

一、前言 之前做过USB打印机&#xff0c;但是现在需求变了&#xff0c;不是使用收银台进行打印机的连接了&#xff0c;而是使用手机与打印机进行打印。手机又无法像收银机一样直接使用USB直接与打印机直接连接进行打印。所以只能使用蓝牙打印机或者wifi打印机了&#xff0c;但…

springboot整合佳博打印机打印条码、二维码

引入依赖 <dependency><groupId>net.java.dev.jna</groupId><artifactId>jna</artifactId><version>3.2.5</version></dependency>2、测试代码 import com.sun.jna.Library; import com.sun.jna.Native;public class Gprinte…

uniapp连接佳博打印机实现蓝牙打印票据功能

开始实现搜索蓝牙。获取蓝牙设备。连接蓝牙设备等操作。代码如下 <template><view class"content"><button class"btn" type"primary" :loading"isSearching" tap"startSearch">开始搜索 </button&g…

Android 关于佳博和汉印蓝牙热敏打印机开发,安卓databinding

PrinterHelper.SetMag(“1”, “1”); PrinterHelper.SetBold(“0”); PrinterHelper.InverseLine(“0”, “0”, “700”, 《Android学习笔记总结最新移动架构视频大厂安卓面试真题项目实战源码讲义》 【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享 “0”, “100…

收银技术周刊第三期硬件篇--如何调整佳博打印机IP地址

目前市面上生产用于厨房热敏打印机的厂家有&#xff1a;佳博、芯烨、思普瑞特等厂家&#xff0c;我们今天讲解佳博打印机如何调整IP。 A&#xff1a;准备工作&#xff1a;1-3&#xff1a; 1、门店路由器要开启DHCP服务&#xff0c;以192.168.1.x段的地址来看&#xff0c;建议DH…

java使用佳博打印机打印标签

文章目录 1.前言1.1打印机型号及驱动说明1.2背景概要 2.填坑3.上代码1.项目截图2.中文打印需要注意两点3.项目源码 4.总结 1.前言 1.1打印机型号及驱动说明 打印机型号&#xff1a;佳博GP-3120TU打印机 标签纸规格&#xff1a;40mm*30mm 间隔2mm 驱动&#xff1a;佳博条码打…

Uniapp Android 佳博 小票打印机 插件

Uniapp Android 佳博 小票打印机 插件 Uniapp Android 佳博小票打印机插件: 支持图片、条型码、二维码 打印。 1. 实例化插件 const gp uni.requireNativePlugin(Html5App-Gprinter); 2.本插件包含4个方法 一、打开蓝牙搜索界面&#xff0c;搜索蓝牙打印机 ,setBackgrou…

佳博/芯桦打票机对接(含USB和网口)

佳博/芯桦打票机对接&#xff08;含USB和网口&#xff09; 记录一下最近实现的一个需求&#xff0c;用PHP远程连接芯桦、佳博打票机&#xff0c;代码还未进行优化&#xff0c;基本功能已经实现打印&#xff0c;具体打印指令需要查看佳博/芯桦的打票机指令&#xff0c;USB口打印…