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);
+ }
+
+}
+