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