From d9da4ea307de6fb1f850a0d2454fb4b708b450e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9F=B3=E5=A4=B4=E4=BA=BA?= <3076767823@qq.com> Date: Mon, 20 Jan 2025 14:58:42 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E5=A2=9E=E5=8A=A0com=E3=80=81TCP?= =?UTF-8?q?=E6=89=93=E5=8D=B0=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../autoReplyPrint/base/BaseImagePrint.java | 2 +- .../impl/COMImagePrintServiceImpl.java | 55 ++++++++++++++++ .../impl/TCPImagePrintServiceImpl.java | 63 +++++++++++++++++++ 3 files changed, 119 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/dpkj/modules/autoReplyPrint/service/impl/COMImagePrintServiceImpl.java create mode 100644 src/main/java/com/dpkj/modules/autoReplyPrint/service/impl/TCPImagePrintServiceImpl.java diff --git a/src/main/java/com/dpkj/modules/autoReplyPrint/base/BaseImagePrint.java b/src/main/java/com/dpkj/modules/autoReplyPrint/base/BaseImagePrint.java index b19cf0a..ea9a96e 100644 --- a/src/main/java/com/dpkj/modules/autoReplyPrint/base/BaseImagePrint.java +++ b/src/main/java/com/dpkj/modules/autoReplyPrint/base/BaseImagePrint.java @@ -18,7 +18,7 @@ public abstract class BaseImagePrint { /** * 必须要实现这个,获取句柄 - * @param devName 设备名称 + * @param devName 设备名称/串口名称 * @return 窗口句柄 */ public abstract Pointer getHandle(String devName); diff --git a/src/main/java/com/dpkj/modules/autoReplyPrint/service/impl/COMImagePrintServiceImpl.java b/src/main/java/com/dpkj/modules/autoReplyPrint/service/impl/COMImagePrintServiceImpl.java new file mode 100644 index 0000000..0df1396 --- /dev/null +++ b/src/main/java/com/dpkj/modules/autoReplyPrint/service/impl/COMImagePrintServiceImpl.java @@ -0,0 +1,55 @@ +package com.dpkj.modules.autoReplyPrint.service.impl; + +import com.dpkj.common.exception.RRException; +import com.dpkj.modules.autoReplyPrint.base.BaseImagePrint; +import com.dpkj.modules.autoReplyPrint.service.ImagePrintService; +import com.dpkj.modules.autoReplyPrint.utils.AutoReplyPrint; +import com.sun.jna.Pointer; +import org.springframework.web.multipart.MultipartFile; + +/** + * 串口图片打印 + * + * @author 石头人 + * @version 1.0 + * @since 2025-01-20 14:55:37 + */ +public class COMImagePrintServiceImpl extends BaseImagePrint implements ImagePrintService { + + @Override + public Pointer getHandle(String devName) { + try { + Pointer pointer = AutoReplyPrint.INSTANCE.CP_Port_OpenLpt(devName); + if ( pointer == null ){ + throw new RRException(); + } + return pointer; + }catch (Exception e){ + e.printStackTrace(); + throw new RRException("获取COM串口句柄失败"); + } + } + + @Override + public void imagePrintFromPath(String devName, int dstw, int dsth, String pszFile, int binaryzation_method, int compression_method) { + super.printFromPath(devName, dstw, dsth, pszFile, binaryzation_method, compression_method); + } + + @Override + public void imagePrintFromPathData(String devName, int dstw, int dsth, String pszFile, int binaryzation_method, int compression_method) { + super.printFromPathData(devName, dstw, dsth, pszFile, binaryzation_method, compression_method); + } + + @Override + public void imagePrintFromData(String devName, int dstw, int dsth, byte[] data, int binaryzation_method, int compression_method) { + super.printFromData(devName, dstw, dsth, data, binaryzation_method, compression_method); + } + + @Override + public void imagePrintFromMultipartFile(String devName, int dstw, int dsth, MultipartFile file, int binaryzation_method, int compression_method) { + super.printFromMultipartFile(devName, dstw, dsth, file, binaryzation_method, compression_method); + } + + +} + diff --git a/src/main/java/com/dpkj/modules/autoReplyPrint/service/impl/TCPImagePrintServiceImpl.java b/src/main/java/com/dpkj/modules/autoReplyPrint/service/impl/TCPImagePrintServiceImpl.java new file mode 100644 index 0000000..cf00081 --- /dev/null +++ b/src/main/java/com/dpkj/modules/autoReplyPrint/service/impl/TCPImagePrintServiceImpl.java @@ -0,0 +1,63 @@ +package com.dpkj.modules.autoReplyPrint.service.impl; + +import com.dpkj.common.exception.RRException; +import com.dpkj.modules.autoReplyPrint.base.BaseImagePrint; +import com.dpkj.modules.autoReplyPrint.service.ImagePrintService; +import com.dpkj.modules.autoReplyPrint.utils.AutoReplyPrint; +import com.sun.jna.Pointer; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +/** + * tcp类型句柄的图片打印 + * + * @author 石头人 + * @version 1.0 + * @since 2025-01-20 14:46:06 + */ +@Data +@Service("TCPImagePrint") +@Slf4j +public class TCPImagePrintServiceImpl extends BaseImagePrint implements ImagePrintService { + + private String destIP; // 目标ip + private Short destPort; // 目标端口 + + @Override + public Pointer getHandle(String devName) { + try { + Pointer pointer = AutoReplyPrint.INSTANCE.CP_Port_OpenTcp("0", destIP, destPort, 300000, 1); + if ( pointer == null ){ + throw new RRException(); + } + return pointer; + }catch (Exception e){ + e.printStackTrace(); + throw new RRException("获取TCP句柄失败"); + } + } + + @Override + public void imagePrintFromPath(String devName, int dstw, int dsth, String pszFile, int binaryzation_method, int compression_method) { + super.printFromPath(devName, dstw, dsth, pszFile, binaryzation_method, compression_method); + } + + @Override + public void imagePrintFromPathData(String devName, int dstw, int dsth, String pszFile, int binaryzation_method, int compression_method) { + super.printFromPathData(devName, dstw, dsth, pszFile, binaryzation_method, compression_method); + } + + @Override + public void imagePrintFromData(String devName, int dstw, int dsth, byte[] data, int binaryzation_method, int compression_method) { + super.printFromData(devName, dstw, dsth, data, binaryzation_method, compression_method); + } + + @Override + public void imagePrintFromMultipartFile(String devName, int dstw, int dsth, MultipartFile file, int binaryzation_method, int compression_method) { + super.printFromMultipartFile(devName, dstw, dsth, file, binaryzation_method, compression_method); + } + +} +