壁挂打印机(缺文档接口说明)、身份证读取(缺64位dll动态库)

This commit is contained in:
2025-01-14 17:46:26 +08:00
parent 7d971f4d13
commit 68e2fbfc8c
36 changed files with 7058 additions and 117 deletions

View File

@@ -0,0 +1,37 @@
package com.dpkj.modules.autoReplyPrint.controller;
import com.dpkj.common.vo.Result;
import com.dpkj.modules.autoReplyPrint.service.AutoReplyPrintService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* 壁挂打印机
*/
@Slf4j
@RestController
@RequestMapping("autoReplyPrint")
public class AutoReplyPrintController {
@Autowired
private AutoReplyPrintService autoReplyPrintService;
/**
* 获取打印机固件版本
* @return
*/
@GetMapping("CPPrinterGetPrinterFirmwareVersion")
public Result<?> CPPrinterGetPrinterFirmwareVersion() {
try {
return autoReplyPrintService.CPPrinterGetPrinterFirmwareVersion();
} catch (Exception e) {
e.printStackTrace();
log.info("获取打印机固件版本失败 {}", e.getMessage());
return Result.error("获取打印机固件版本失败");
}
}
}

View File

@@ -0,0 +1,9 @@
package com.dpkj.modules.autoReplyPrint.service;
import com.dpkj.common.vo.Result;
public interface AutoReplyPrintService {
Result<?> CPPrinterGetPrinterFirmwareVersion();
}

View File

@@ -0,0 +1,29 @@
package com.dpkj.modules.autoReplyPrint.service.impl;
import com.dpkj.common.vo.Result;
import com.dpkj.modules.autoReplyPrint.service.AutoReplyPrintService;
import com.dpkj.modules.autoReplyPrint.utils.AutoReplyPrint;
import com.dpkj.modules.autoReplyPrint.utils.AutoReplyPrint2;
import com.dpkj.modules.autoReplyPrint.utils.MyLibrary;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class AutoReplyPrintServiceImpl implements AutoReplyPrintService {
private AutoReplyPrint2.AutoReplyPrint2Sdk autoReplyPrint2Sdk = AutoReplyPrint2.getAutoReplyPrint2SDK();
public AutoReplyPrintServiceImpl() throws AutoReplyPrint2.AutoReplyPrint2RegistrationException {
}
@Override
public Result<?> CPPrinterGetPrinterFirmwareVersion() {
String s = MyLibrary.INSTANCE.CP_Printer_GetPrinterFirmwareVersion();
//String s = autoReplyPrint2Sdk.CPPrinterGetPrinterFirmwareVersion();
log.info("壁挂机打印机版本信息{}", s);
return Result.ok(s);
}
}

View File

@@ -0,0 +1,429 @@
package com.dpkj.modules.autoReplyPrint.service.impl;
import com.dpkj.modules.autoReplyPrint.utils.AutoReplyPrint;
import com.dpkj.modules.autoReplyPrint.utils.TestFunction;
import com.sun.jna.Pointer;
import com.sun.jna.ptr.IntByReference;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class samplelabel {
@SuppressWarnings("serial")
class GroupBoxPort extends JPanel implements ActionListener {
public JRadioButton rbCom = new JRadioButton();
public JRadioButton rbTcp = new JRadioButton();
public JRadioButton rbUsb = new JRadioButton();
public ButtonGroup rbGroup = new ButtonGroup();
public JComboBox cbxComName = new JComboBox();
public JComboBox cbxComBaudrate = new JComboBox();
public JTextField editIPAddress = new JTextField();
public JTextField editTcpPort = new JTextField();
public JComboBox cbxUsbName = new JComboBox();
public GroupBoxPort() {
this.setLayout(null);
this.setSize(760, 120);
this.setBorder(BorderFactory.createTitledBorder("Select Port"));
rbGroup.add(rbCom);
rbGroup.add(rbTcp);
rbGroup.add(rbUsb);
rbCom.setText("COM");
rbCom.setBounds(10, 20, 60, 30);
this.add(rbCom);
rbTcp.setText("TCP");
rbTcp.setBounds(10, 50, 60, 30);
this.add(rbTcp);
rbUsb.setText("USB");
rbUsb.setBounds(10, 80, 60, 30);
this.add(rbUsb);
cbxComName.setBounds(70, 20, 600, 30);
this.add(cbxComName);
cbxComBaudrate.setBounds(670, 20, 80, 30);
this.add(cbxComBaudrate);
editIPAddress.setBounds(70, 50, 600, 31);
this.add(editIPAddress);
editTcpPort.setBounds(670, 50, 81, 31);
this.add(editTcpPort);
cbxUsbName.setBounds(70, 80, 680, 30);
this.add(cbxUsbName);
rbUsb.setSelected(true);
editIPAddress.setText("192.168.1.87");
editTcpPort.setText("9100");
String[] ComBaudrateStringList = {"1200", "2400", "4800", "9600", "19200", "38400", "57600", "115200",
"230400", "256000", "500000", "750000", "1125000", "1500000"};
for (String baudrate : ComBaudrateStringList)
cbxComBaudrate.addItem(baudrate);
cbxComBaudrate.setSelectedIndex(7);
}
@Override
public void actionPerformed(ActionEvent arg0) {
}
}
@SuppressWarnings("serial")
class TestForm extends JFrame implements ActionListener {
String[] testFunctionOrderedList = new String[]{
"Test_Label_SampleTicket_58MM_1",
"Test_Label_SampleTicket_80MM_1",
"Test_Port_Write",
"Test_Port_Read",
"Test_Port_Available",
"Test_Port_SkipAvailable",
"Test_Port_IsConnectionValid",
"Test_Printer_GetPrinterInfo",
"Test_Printer_ClearPrinterBuffer",
"Test_Printer_ClearPrinterError",
"Test_Pos_QueryPrintResult",
"Test_Pos_KickOutDrawer",
"Test_Pos_Beep",
"Test_Pos_PrintSelfTestPage",
"Test_Label_EnableLabelMode",
"Test_Label_DisableLabelMode",
"Test_Label_CalibrateLabel",
"Test_Label_FeedLabel",
"Test_Label_SetLabelPositionAdjustment",
"Test_Label_PageBegin_PagePrint",
"Test_Label_DrawText",
"Test_Label_DrawBarcode_UPCA",
"Test_Label_DrawBarcode_UPCE",
"Test_Label_DrawBarcode_EAN13",
"Test_Label_DrawBarcode_EAN8",
"Test_Label_DrawBarcode_CODE39",
"Test_Label_DrawBarcode_ITF",
"Test_Label_DrawBarcode_CODEBAR",
"Test_Label_DrawBarcode_CODE93",
"Test_Label_DrawBarcode_CODE128",
"Test_Label_DrawQRCode",
"Test_Label_DrawPDF417Code",
"Test_Label_DrawLine",
"Test_Label_DrawRect",
"Test_Label_DrawBox",
"Test_Label_DrawImageFromBufferedImage",
};
GroupBoxPort groupBoxPort = new GroupBoxPort();
JButton btnEnumPort = new JButton();
JButton btnOpenPort = new JButton();
JButton btnClosePort = new JButton();
JList listFunction = new JList(testFunctionOrderedList);
JScrollPane scrollFunction = new JScrollPane(listFunction);
JLabel labelFirmwareVersion = new JLabel();
JLabel labelResolution = new JLabel();
JLabel labelErrorStatus = new JLabel();
JLabel labelInfoStatus = new JLabel();
JLabel labelPrinterReceivedByteCount = new JLabel();
JLabel labelPrinterPrintedPageID = new JLabel();
Pointer h = Pointer.NULL;
AutoReplyPrint.CP_OnPortClosedEvent_Callback closed_callback = new AutoReplyPrint.CP_OnPortClosedEvent_Callback() {
@Override
public void CP_OnPortClosedEvent(Pointer handle, Pointer private_data) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
btnClosePort.doClick();
}
});
}
};
AutoReplyPrint.CP_OnPrinterStatusEvent_Callback status_callback = new AutoReplyPrint.CP_OnPrinterStatusEvent_Callback() {
@Override
public void CP_OnPrinterStatusEvent(Pointer h, final long printer_error_status,
final long printer_info_status, Pointer private_data) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
Calendar calendar = Calendar.getInstance();
Date calendarDate = calendar.getTime();
String time = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss").format(calendarDate);
AutoReplyPrint.CP_PrinterStatus status = new AutoReplyPrint.CP_PrinterStatus(
printer_error_status, printer_info_status);
String error_status_string = String.format(" Printer Error Status: 0x%04X",
printer_error_status & 0xffff);
if (status.ERROR_OCCURED()) {
if (status.ERROR_CUTTER())
error_status_string += "[ERROR_CUTTER]";
if (status.ERROR_FLASH())
error_status_string += "[ERROR_FLASH]";
if (status.ERROR_NOPAPER())
error_status_string += "[ERROR_NOPAPER]";
if (status.ERROR_VOLTAGE())
error_status_string += "[ERROR_VOLTAGE]";
if (status.ERROR_MARKER())
error_status_string += "[ERROR_MARKER]";
if (status.ERROR_ENGINE())
error_status_string += "[ERROR_ENGINE]";
if (status.ERROR_OVERHEAT())
error_status_string += "[ERROR_OVERHEAT]";
if (status.ERROR_COVERUP())
error_status_string += "[ERROR_COVERUP]";
if (status.ERROR_MOTOR())
error_status_string += "[ERROR_MOTOR]";
}
String info_status_string = String.format(" Printer Info Status: 0x%04X",
printer_info_status & 0xffff);
if (status.INFO_LABELMODE())
info_status_string += "[Label Mode]";
if (status.INFO_LABELPAPER())
info_status_string += "[Label Paper]";
if (status.INFO_PAPERNOFETCH())
info_status_string += "[Paper Not Fetch]";
labelErrorStatus.setText(time + error_status_string);
labelInfoStatus.setText(time + info_status_string);
}
});
}
};
AutoReplyPrint.CP_OnPrinterReceivedEvent_Callback received_callback = new AutoReplyPrint.CP_OnPrinterReceivedEvent_Callback() {
@Override
public void CP_OnPrinterReceivedEvent(Pointer h, final int printer_received_byte_count,
Pointer private_data) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
Calendar calendar = Calendar.getInstance();
Date calendarDate = calendar.getTime();
String time = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss").format(calendarDate);
labelPrinterReceivedByteCount
.setText(time + " PrinterReceived: " + printer_received_byte_count);
}
});
}
};
AutoReplyPrint.CP_OnPrinterPrintedEvent_Callback printed_callback = new AutoReplyPrint.CP_OnPrinterPrintedEvent_Callback() {
@Override
public void CP_OnPrinterPrintedEvent(Pointer h, final int printer_printed_page_id, Pointer private_data) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
Calendar calendar = Calendar.getInstance();
Date calendarDate = calendar.getTime();
String time = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss").format(calendarDate);
labelPrinterPrintedPageID.setText(time + " PrinterPrinted: " + printer_printed_page_id);
}
});
}
};
private void AddCallback() {
AutoReplyPrint.INSTANCE.CP_Port_AddOnPortClosedEvent(closed_callback, Pointer.NULL);
AutoReplyPrint.INSTANCE.CP_Printer_AddOnPrinterStatusEvent(status_callback, Pointer.NULL);
AutoReplyPrint.INSTANCE.CP_Printer_AddOnPrinterReceivedEvent(received_callback, Pointer.NULL);
AutoReplyPrint.INSTANCE.CP_Printer_AddOnPrinterPrintedEvent(printed_callback, Pointer.NULL);
}
private void RemoveCallback() {
AutoReplyPrint.INSTANCE.CP_Port_RemoveOnPortClosedEvent(closed_callback);
AutoReplyPrint.INSTANCE.CP_Printer_RemoveOnPrinterStatusEvent(status_callback);
AutoReplyPrint.INSTANCE.CP_Printer_RemoveOnPrinterReceivedEvent(received_callback);
AutoReplyPrint.INSTANCE.CP_Printer_RemoveOnPrinterPrintedEvent(printed_callback);
}
public TestForm() {
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(null);
this.setVisible(true);
this.setSize(800, 700);
this.setTitle(AutoReplyPrint.INSTANCE.CP_Library_Version());
groupBoxPort.setLocation(10, 10);
this.add(groupBoxPort);
btnEnumPort.setBounds(20, 140, 240, 30);
btnEnumPort.setText("EnumPort");
btnEnumPort.addActionListener(this);
this.add(btnEnumPort);
btnOpenPort.setBounds(270, 140, 240, 30);
btnOpenPort.setText("OpenPort");
btnOpenPort.addActionListener(this);
this.add(btnOpenPort);
btnClosePort.setBounds(520, 140, 240, 30);
btnClosePort.setText("ClosePort");
btnClosePort.addActionListener(this);
this.add(btnClosePort);
labelFirmwareVersion.setBounds(20, 460, 740, 30);
labelFirmwareVersion.setText("Firmware Version:");
this.add(labelFirmwareVersion);
labelResolution.setBounds(20, 490, 740, 30);
labelResolution.setText("Resolution:");
this.add(labelResolution);
labelErrorStatus.setBounds(20, 520, 740, 30);
labelErrorStatus.setText("Error Status:");
this.add(labelErrorStatus);
labelInfoStatus.setBounds(20, 550, 740, 30);
labelInfoStatus.setText("Info Status:");
this.add(labelInfoStatus);
labelPrinterReceivedByteCount.setBounds(20, 580, 740, 30);
labelPrinterReceivedByteCount.setText("Printer Received Byte Count:");
this.add(labelPrinterReceivedByteCount);
labelPrinterPrintedPageID.setBounds(20, 610, 740, 30);
labelPrinterPrintedPageID.setText("Printer Printed Page ID:");
this.add(labelPrinterPrintedPageID);
scrollFunction.setBounds(20, 180, 740, 270);
this.add(scrollFunction);
listFunction.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
// listFunction.addListSelectionListener(this);
listFunction.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
if (e.getSource() == listFunction) {
String functionName = listFunction.getSelectedValue().toString();
if ((functionName == null) || (functionName.isEmpty()))
return;
try {
TestFunction fun = new TestFunction();
Method m = TestFunction.class.getDeclaredMethod(functionName, Pointer.class);
m.invoke(fun, h);
} catch (Throwable tr) {
tr.printStackTrace();
}
}
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
});
btnEnumPort.doClick();
refreshUI();
AddCallback();
}
protected void finalize() throws Throwable {
RemoveCallback();
super.finalize();
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnEnumPort) {
String[] port_list = null;
groupBoxPort.cbxComName.removeAllItems();
port_list = AutoReplyPrint.CP_Port_EnumCom_Helper.EnumCom();
if (port_list != null) {
for (String port : port_list)
groupBoxPort.cbxComName.addItem(port);
}
groupBoxPort.cbxUsbName.removeAllItems();
port_list = AutoReplyPrint.CP_Port_EnumUsb_Helper.EnumUsb();
if (port_list != null) {
for (String port : port_list)
groupBoxPort.cbxUsbName.addItem(port);
}
} else if (e.getSource() == btnOpenPort) {
if (groupBoxPort.rbCom.isSelected()) {
if (groupBoxPort.cbxComName.getSelectedItem() == null)
return;
String name = groupBoxPort.cbxComName.getSelectedItem().toString();
int baudrate = Integer.parseInt(groupBoxPort.cbxComBaudrate.getSelectedItem().toString());
h = AutoReplyPrint.INSTANCE.CP_Port_OpenCom(name, baudrate, AutoReplyPrint.CP_ComDataBits_8,
AutoReplyPrint.CP_ComParity_NoParity, AutoReplyPrint.CP_ComStopBits_One, AutoReplyPrint.CP_ComFlowControl_None,
1);
} else if (groupBoxPort.rbUsb.isSelected()) {
if (groupBoxPort.cbxUsbName.getSelectedItem() == null)
return;
String name = groupBoxPort.cbxUsbName.getSelectedItem().toString();
h = AutoReplyPrint.INSTANCE.CP_Port_OpenUsb(name, 1);
} else if (groupBoxPort.rbTcp.isSelected()) {
String ip = groupBoxPort.editIPAddress.getText();
int port = Integer.parseInt(groupBoxPort.editTcpPort.getText());
h = AutoReplyPrint.INSTANCE.CP_Port_OpenTcp(null, ip, (short) port, 5000, 1);
}
refreshUI();
} else if (e.getSource() == btnClosePort) {
if (h != Pointer.NULL) {
AutoReplyPrint.INSTANCE.CP_Port_Close(h);
h = Pointer.NULL;
}
refreshUI();
}
}
private void refreshUI() {
groupBoxPort.setEnabled(h == Pointer.NULL);
btnEnumPort.setEnabled(h == Pointer.NULL);
btnOpenPort.setEnabled(h == Pointer.NULL);
btnClosePort.setEnabled(h != Pointer.NULL);
listFunction.setEnabled(h != Pointer.NULL);
if (h != Pointer.NULL) {
labelFirmwareVersion.setText("Firmware Version: "
+ AutoReplyPrint.CP_Printer_GetPrinterFirmwareVersion_Helper.GetPrinterFirmwareVersion(h));
IntByReference width_mm = new IntByReference();
IntByReference height_mm = new IntByReference();
IntByReference dots_per_mm = new IntByReference();
if (AutoReplyPrint.INSTANCE.CP_Printer_GetPrinterResolutionInfo(h, width_mm, height_mm, dots_per_mm)) {
labelResolution.setText("Resolution: " + "width:" + width_mm.getValue() + "mm " + "height:"
+ height_mm.getValue() + "mm " + "dots_per_mm:" + dots_per_mm.getValue());
}
}
}
}
static TestForm testform;
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
testform = new samplelabel().new TestForm();
}
});
}
}

View File

@@ -0,0 +1,849 @@
package com.dpkj.modules.autoReplyPrint.utils;
import com.sun.jna.*;
import com.sun.jna.ptr.DoubleByReference;
import com.sun.jna.ptr.IntByReference;
import com.sun.jna.ptr.LongByReference;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
public interface AutoReplyPrint extends Library {
AutoReplyPrint INSTANCE = (AutoReplyPrint) Native.loadLibrary(GetLibraryPath_Helper.GetLibraryPath(), AutoReplyPrint.class);
int CP_ComDataBits_4 = 4;
int CP_ComDataBits_5 = 5;
int CP_ComDataBits_6 = 6;
int CP_ComDataBits_7 = 7;
int CP_ComDataBits_8 = 8;
int CP_ComParity_NoParity = 0;
int CP_ComParity_OddParity = 1;
int CP_ComParity_EvenParity = 2;
int CP_ComParity_MarkParity = 3;
int CP_ComParity_SpaceParity = 4;
int CP_ComStopBits_One = 0;
int CP_ComStopBits_OnePointFive = 1;
int CP_ComStopBits_Two = 2;
int CP_ComFlowControl_None = 0;
int CP_ComFlowControl_XonXoff = 1;
int CP_ComFlowControl_RtsCts = 2;
int CP_ComFlowControl_DtrDsr = 3;
int CP_CharacterSet_USA = 0;
int CP_CharacterSet_FRANCE = 1;
int CP_CharacterSet_GERMANY = 2;
int CP_CharacterSet_UK = 3;
int CP_CharacterSet_DENMARK_I = 4;
int CP_CharacterSet_SWEDEN = 5;
int CP_CharacterSet_ITALY = 6;
int CP_CharacterSet_SPAIN_I = 7;
int CP_CharacterSet_JAPAN = 8;
int CP_CharacterSet_NORWAY = 9;
int CP_CharacterSet_DENMARK_II = 10;
int CP_CharacterSet_SPAIN_II = 11;
int CP_CharacterSet_LATIN = 12;
int CP_CharacterSet_KOREA = 13;
int CP_CharacterSet_SLOVENIA = 14;
int CP_CharacterSet_CHINA = 15;
int CP_CharacterCodepage_CP437 = 0;
int CP_CharacterCodepage_KATAKANA = 1;
int CP_CharacterCodepage_CP850 = 2;
int CP_CharacterCodepage_CP860 = 3;
int CP_CharacterCodepage_CP863 = 4;
int CP_CharacterCodepage_CP865 = 5;
int CP_CharacterCodepage_WCP1251 = 6;
int CP_CharacterCodepage_CP866 = 7;
int CP_CharacterCodepage_MIK = 8;
int CP_CharacterCodepage_CP755 = 9;
int CP_CharacterCodepage_IRAN = 10;
int CP_CharacterCodepage_CP862 = 15;
int CP_CharacterCodepage_WCP1252 = 16;
int CP_CharacterCodepage_WCP1253 = 17;
int CP_CharacterCodepage_CP852 = 18;
int CP_CharacterCodepage_CP858 = 19;
int CP_CharacterCodepage_IRAN_II = 20;
int CP_CharacterCodepage_LATVIAN = 21;
int CP_CharacterCodepage_CP864 = 22;
int CP_CharacterCodepage_ISO_8859_1 = 23;
int CP_CharacterCodepage_CP737 = 24;
int CP_CharacterCodepage_WCP1257 = 25;
int CP_CharacterCodepage_THAI = 26;
int CP_CharacterCodepage_CP720 = 27;
int CP_CharacterCodepage_CP855 = 28;
int CP_CharacterCodepage_CP857 = 29;
int CP_CharacterCodepage_WCP1250 = 30;
int CP_CharacterCodepage_CP775 = 31;
int CP_CharacterCodepage_WCP1254 = 32;
int CP_CharacterCodepage_WCP1255 = 33;
int CP_CharacterCodepage_WCP1256 = 34;
int CP_CharacterCodepage_WCP1258 = 35;
int CP_CharacterCodepage_ISO_8859_2 = 36;
int CP_CharacterCodepage_ISO_8859_3 = 37;
int CP_CharacterCodepage_ISO_8859_4 = 38;
int CP_CharacterCodepage_ISO_8859_5 = 39;
int CP_CharacterCodepage_ISO_8859_6 = 40;
int CP_CharacterCodepage_ISO_8859_7 = 41;
int CP_CharacterCodepage_ISO_8859_8 = 42;
int CP_CharacterCodepage_ISO_8859_9 = 43;
int CP_CharacterCodepage_ISO_8859_15 = 44;
int CP_CharacterCodepage_THAI_2 = 45;
int CP_CharacterCodepage_CP856 = 46;
int CP_CharacterCodepage_CP874 = 47;
int CP_CharacterCodepage_TCVN3 = 48;
int CP_MultiByteEncoding_GBK = 0;
int CP_MultiByteEncoding_UTF8 = 1;
int CP_MultiByteEncoding_BIG5 = 3;
int CP_MultiByteEncoding_ShiftJIS = 4;
int CP_MultiByteEncoding_EUCKR = 5;
int CP_ImageBinarizationMethod_Dithering = 0;
int CP_ImageBinarizationMethod_Thresholding = 1;
int CP_ImageBinarizationMethod_ErrorDiffusion = 2;
int CP_ImageCompressionMethod_None = 0;
int CP_ImageCompressionMethod_Level1 = 1;
int CP_ImageCompressionMethod_Level2 = 2;
int CP_ImagePixelsFormat_MONO = 1;
int CP_ImagePixelsFormat_MONOLSB = 2;
int CP_ImagePixelsFormat_GRAY8 = 3;
int CP_ImagePixelsFormat_BYTEORDERED_RGB24 = 4;
int CP_ImagePixelsFormat_BYTEORDERED_BGR24 = 5;
int CP_ImagePixelsFormat_BYTEORDERED_ARGB32 = 6;
int CP_ImagePixelsFormat_BYTEORDERED_RGBA32 = 7;
int CP_ImagePixelsFormat_BYTEORDERED_ABGR32 = 8;
int CP_ImagePixelsFormat_BYTEORDERED_BGRA32 = 9;
int CP_QRCodeECC_L = 1;
int CP_QRCodeECC_M = 2;
int CP_QRCodeECC_Q = 3;
int CP_QRCodeECC_H = 4;
int CP_Pos_Alignment_Left = 0;
int CP_Pos_Alignment_HCenter = 1;
int CP_Pos_Alignment_Right = 2;
int CP_Pos_BarcodeType_UPCA = 65;
int CP_Pos_BarcodeType_UPCE = 66;
int CP_Pos_BarcodeType_EAN13 = 67;
int CP_Pos_BarcodeType_EAN8 = 68;
int CP_Pos_BarcodeType_CODE39 = 69;
int CP_Pos_BarcodeType_ITF = 70;
int CP_Pos_BarcodeType_CODEBAR = 71;
int CP_Pos_BarcodeType_CODE93 = 72;
int CP_Pos_BarcodeType_CODE128 = 73;
int CP_Pos_BarcodeTextPrintPosition_None = 0;
int CP_Pos_BarcodeTextPrintPosition_AboveBarcode = 1;
int CP_Pos_BarcodeTextPrintPosition_BelowBarcode = 2;
int CP_Pos_BarcodeTextPrintPosition_AboveAndBelowBarcode = 3;
int CP_Page_DrawDirection_LeftToRight = 0;
int CP_Page_DrawDirection_BottomToTop = 1;
int CP_Page_DrawDirection_RightToLeft = 2;
int CP_Page_DrawDirection_TopToBottom = 3;
int CP_Page_DrawAlignment_Left = -1;
int CP_Page_DrawAlignment_HCenter = -2;
int CP_Page_DrawAlignment_Right = -3;
int CP_Page_DrawAlignment_Top = -1;
int CP_Page_DrawAlignment_VCenter = -2;
int CP_Page_DrawAlignment_Bottom = -3;
int CP_Label_BarcodeType_UPCA = 0;
int CP_Label_BarcodeType_UPCE = 1;
int CP_Label_BarcodeType_EAN13 = 2;
int CP_Label_BarcodeType_EAN8 = 3;
int CP_Label_BarcodeType_CODE39 = 4;
int CP_Label_BarcodeType_ITF = 5;
int CP_Label_BarcodeType_CODEBAR = 6;
int CP_Label_BarcodeType_CODE93 = 7;
int CP_Label_BarcodeType_CODE128 = 8;
int CP_Label_BarcodeType_CODE11 = 9;
int CP_Label_BarcodeType_MSI = 10;
int CP_Label_BarcodeType_128M = 11;
int CP_Label_BarcodeType_EAN128 = 12;
int CP_Label_BarcodeType_25C = 13;
int CP_Label_BarcodeType_39C = 14;
int CP_Label_BarcodeType_39 = 15;
int CP_Label_BarcodeType_EAN13PLUS2 = 16;
int CP_Label_BarcodeType_EAN13PLUS5 = 17;
int CP_Label_BarcodeType_EAN8PLUS2 = 18;
int CP_Label_BarcodeType_EAN8PLUS5 = 19;
int CP_Label_BarcodeType_POST = 20;
int CP_Label_BarcodeType_UPCAPLUS2 = 21;
int CP_Label_BarcodeType_UPCAPLUS5 = 22;
int CP_Label_BarcodeType_UPCEPLUS2 = 23;
int CP_Label_BarcodeType_UPCEPLUS5 = 24;
int CP_Label_BarcodeType_CPOST = 25;
int CP_Label_BarcodeType_MSIC = 26;
int CP_Label_BarcodeType_PLESSEY = 27;
int CP_Label_BarcodeType_ITF14 = 28;
int CP_Label_BarcodeType_EAN14 = 29;
int CP_Label_BarcodeTextPrintPosition_None = 0;
int CP_Label_BarcodeTextPrintPosition_AboveBarcode = 1;
int CP_Label_BarcodeTextPrintPosition_BelowBarcode = 2;
int CP_Label_BarcodeTextPrintPosition_AboveAndBelowBarcode = 3;
int CP_Label_Rotation_0 = 0;
int CP_Label_Rotation_90 = 1;
int CP_Label_Rotation_180 = 2;
int CP_Label_Rotation_270 = 3;
int CP_Label_Color_White = 0;
int CP_Label_Color_Black = 1;
String CP_Library_Version();
int CP_Port_EnumCom(byte[] var1, int var2, IntByReference var3);
int CP_Port_EnumLpt(byte[] var1, int var2, IntByReference var3);
int CP_Port_EnumUsb(byte[] var1, int var2, IntByReference var3);
void CP_Port_EnumNetPrinter(int var1, IntByReference var2, CP_OnNetPrinterDiscovered_Callback var3, Pointer var4);
void CP_Port_EnumBtDevice(int var1, IntByReference var2, CP_OnBluetoothDeviceDiscovered_Callback var3, Pointer var4);
void CP_Port_EnumBleDevice(int var1, IntByReference var2, CP_OnBluetoothDeviceDiscovered_Callback var3, Pointer var4);
Pointer CP_Port_OpenCom(String var1, int var2, int var3, int var4, int var5, int var6, int var7);
Pointer CP_Port_OpenLpt(String var1);
Pointer CP_Port_OpenUsb(String var1, int var2);
Pointer CP_Port_OpenTcp(String var1, String var2, short var3, int var4, int var5);
Pointer CP_Port_OpenBtSpp(String var1, int var2);
Pointer CP_Port_OpenBtBle(String var1, int var2);
int CP_Port_Write(Pointer var1, byte[] var2, int var3, int var4);
int CP_Port_Read(Pointer var1, byte[] var2, int var3, int var4);
int CP_Port_ReadUntilByte(Pointer var1, byte[] var2, int var3, int var4, byte var5);
int CP_Port_Available(Pointer var1);
boolean CP_Port_SkipAvailable(Pointer var1);
boolean CP_Port_IsConnectionValid(Pointer var1);
boolean CP_Port_IsOpened(Pointer var1);
boolean CP_Port_Close(Pointer var1);
boolean CP_Port_AddOnPortOpenedEvent(CP_OnPortOpenedEvent_Callback var1, Pointer var2);
boolean CP_Port_AddOnPortOpenFailedEvent(CP_OnPortOpenFailedEvent_Callback var1, Pointer var2);
boolean CP_Port_AddOnPortClosedEvent(CP_OnPortClosedEvent_Callback var1, Pointer var2);
boolean CP_Port_AddOnPortWrittenEvent(CP_OnPortWrittenEvent_Callback var1, Pointer var2);
boolean CP_Port_AddOnPortReceivedEvent(CP_OnPortReceivedEvent_Callback var1, Pointer var2);
boolean CP_Port_RemoveOnPortOpenedEvent(CP_OnPortOpenedEvent_Callback var1);
boolean CP_Port_RemoveOnPortOpenFailedEvent(CP_OnPortOpenFailedEvent_Callback var1);
boolean CP_Port_RemoveOnPortClosedEvent(CP_OnPortClosedEvent_Callback var1);
boolean CP_Port_RemoveOnPortWrittenEvent(CP_OnPortWrittenEvent_Callback var1);
boolean CP_Port_RemoveOnPortReceivedEvent(CP_OnPortReceivedEvent_Callback var1);
boolean CP_Printer_AddOnPrinterStatusEvent(CP_OnPrinterStatusEvent_Callback var1, Pointer var2);
boolean CP_Printer_AddOnPrinterReceivedEvent(CP_OnPrinterReceivedEvent_Callback var1, Pointer var2);
boolean CP_Printer_AddOnPrinterPrintedEvent(CP_OnPrinterPrintedEvent_Callback var1, Pointer var2);
boolean CP_Printer_RemoveOnPrinterStatusEvent(CP_OnPrinterStatusEvent_Callback var1);
boolean CP_Printer_RemoveOnPrinterReceivedEvent(CP_OnPrinterReceivedEvent_Callback var1);
boolean CP_Printer_RemoveOnPrinterPrintedEvent(CP_OnPrinterPrintedEvent_Callback var1);
boolean CP_Printer_GetPrinterResolutionInfo(Pointer var1, IntByReference var2, IntByReference var3, IntByReference var4);
boolean CP_Printer_GetPrinterFirmwareVersion(Pointer var1, byte[] var2, int var3, IntByReference var4);
boolean CP_Printer_GetPrinterStatusInfo(Pointer var1, LongByReference var2, LongByReference var3, LongByReference var4);
boolean CP_Printer_GetPrinterReceivedInfo(Pointer var1, IntByReference var2, LongByReference var3);
boolean CP_Printer_GetPrinterPrintedInfo(Pointer var1, IntByReference var2, LongByReference var3);
boolean CP_Printer_GetPrinterLabelPositionAdjustmentInfo(Pointer var1, DoubleByReference var2, DoubleByReference var3, LongByReference var4);
boolean CP_Printer_SetPrinterLabelPositionAdjustmentInfo(Pointer var1, double var2, double var4);
boolean CP_Printer_ClearPrinterBuffer(Pointer var1);
boolean CP_Printer_ClearPrinterError(Pointer var1);
int CP_Pos_QueryRTStatus(Pointer var1, int var2);
boolean CP_Pos_QueryPrintResult(Pointer var1, int var2);
boolean CP_Pos_KickOutDrawer(Pointer var1, int var2, int var3, int var4);
boolean CP_Pos_Beep(Pointer var1, int var2, int var3);
boolean CP_Pos_FeedAndHalfCutPaper(Pointer var1);
boolean CP_Pos_FullCutPaper(Pointer var1);
boolean CP_Pos_HalfCutPaper(Pointer var1);
boolean CP_Pos_FeedLine(Pointer var1, int var2);
boolean CP_Pos_FeedDot(Pointer var1, int var2);
boolean CP_Pos_PrintSelfTestPage(Pointer var1);
boolean CP_Pos_PrintText(Pointer var1, String var2);
boolean CP_Pos_PrintTextInUTF8(Pointer var1, WString var2);
boolean CP_Pos_PrintTextInGBK(Pointer var1, WString var2);
boolean CP_Pos_PrintTextInBIG5(Pointer var1, WString var2);
boolean CP_Pos_PrintTextInShiftJIS(Pointer var1, WString var2);
boolean CP_Pos_PrintTextInEUCKR(Pointer var1, WString var2);
boolean CP_Pos_PrintBarcode(Pointer var1, int var2, String var3);
boolean CP_Pos_PrintBarcode_Code128Auto(Pointer var1, String var2);
boolean CP_Pos_PrintQRCode(Pointer var1, int var2, int var3, String var4);
boolean CP_Pos_PrintQRCodeUseEpsonCmd(Pointer var1, int var2, int var3, String var4);
boolean CP_Pos_PrintDoubleQRCode(Pointer var1, int var2, int var3, int var4, int var5, String var6, int var7, int var8, int var9, String var10);
boolean CP_Pos_PrintPDF417BarcodeUseEpsonCmd(Pointer var1, int var2, int var3, int var4, int var5, int var6, int var7, String var8);
boolean CP_Pos_PrintRasterImageFromFile(Pointer var1, int var2, int var3, String var4, int var5, int var6);
boolean CP_Pos_PrintRasterImageFromData(Pointer var1, int var2, int var3, byte[] var4, int var5, int var6, int var7);
boolean CP_Pos_PrintRasterImageFromPixels(Pointer var1, byte[] var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9);
boolean CP_Pos_PrintHorizontalLine(Pointer var1, int var2, int var3);
boolean CP_Pos_PrintHorizontalLineSpecifyThickness(Pointer var1, int var2, int var3, int var4);
boolean CP_Pos_PrintMultipleHorizontalLinesAtOneRow(Pointer var1, int var2, int[] var3, int[] var4);
boolean CP_Pos_ResetPrinter(Pointer var1);
boolean CP_Pos_SetPrintSpeed(Pointer var1, int var2);
boolean CP_Pos_SetPrintDensity(Pointer var1, int var2);
boolean CP_Pos_SetSingleByteMode(Pointer var1);
boolean CP_Pos_SetCharacterSet(Pointer var1, int var2);
boolean CP_Pos_SetCharacterCodepage(Pointer var1, int var2);
boolean CP_Pos_SetMultiByteMode(Pointer var1);
boolean CP_Pos_SetMultiByteEncoding(Pointer var1, int var2);
boolean CP_Pos_SetMovementUnit(Pointer var1, int var2, int var3);
boolean CP_Pos_SetPrintAreaLeftMargin(Pointer var1, int var2);
boolean CP_Pos_SetPrintAreaWidth(Pointer var1, int var2);
boolean CP_Pos_SetHorizontalAbsolutePrintPosition(Pointer var1, int var2);
boolean CP_Pos_SetHorizontalRelativePrintPosition(Pointer var1, int var2);
boolean CP_Pos_SetVerticalAbsolutePrintPosition(Pointer var1, int var2);
boolean CP_Pos_SetVerticalRelativePrintPosition(Pointer var1, int var2);
boolean CP_Pos_SetAlignment(Pointer var1, int var2);
boolean CP_Pos_SetTextScale(Pointer var1, int var2, int var3);
boolean CP_Pos_SetAsciiTextFontType(Pointer var1, int var2);
boolean CP_Pos_SetTextBold(Pointer var1, int var2);
boolean CP_Pos_SetTextUnderline(Pointer var1, int var2);
boolean CP_Pos_SetTextUpsideDown(Pointer var1, int var2);
boolean CP_Pos_SetTextWhiteOnBlack(Pointer var1, int var2);
boolean CP_Pos_SetTextRotate(Pointer var1, int var2);
boolean CP_Pos_SetTextLineHeight(Pointer var1, int var2);
boolean CP_Pos_SetAsciiTextCharRightSpacing(Pointer var1, int var2);
boolean CP_Pos_SetKanjiTextCharSpacing(Pointer var1, int var2, int var3);
boolean CP_Pos_SetBarcodeUnitWidth(Pointer var1, int var2);
boolean CP_Pos_SetBarcodeHeight(Pointer var1, int var2);
boolean CP_Pos_SetBarcodeReadableTextFontType(Pointer var1, int var2);
boolean CP_Pos_SetBarcodeReadableTextPosition(Pointer var1, int var2);
boolean CP_Page_SelectPageMode(Pointer var1);
boolean CP_Page_SelectPageModeEx(Pointer var1, int var2, int var3, int var4, int var5, int var6, int var7);
boolean CP_Page_ExitPageMode(Pointer var1);
boolean CP_Page_PrintPage(Pointer var1);
boolean CP_Page_ClearPage(Pointer var1);
boolean CP_Page_SetPageArea(Pointer var1, int var2, int var3, int var4, int var5);
boolean CP_Page_SetPageDrawDirection(Pointer var1, int var2);
boolean CP_Page_DrawRect(Pointer var1, int var2, int var3, int var4, int var5, int var6);
boolean CP_Page_DrawBox(Pointer var1, int var2, int var3, int var4, int var5, int var6, int var7);
boolean CP_Page_DrawText(Pointer var1, int var2, int var3, String var4);
boolean CP_Page_DrawTextInUTF8(Pointer var1, int var2, int var3, WString var4);
boolean CP_Page_DrawTextInGBK(Pointer var1, int var2, int var3, WString var4);
boolean CP_Page_DrawTextInBIG5(Pointer var1, int var2, int var3, WString var4);
boolean CP_Page_DrawTextInShiftJIS(Pointer var1, int var2, int var3, WString var4);
boolean CP_Page_DrawTextInEUCKR(Pointer var1, int var2, int var3, WString var4);
boolean CP_Page_DrawBarcode(Pointer var1, int var2, int var3, int var4, String var5);
boolean CP_Page_DrawQRCode(Pointer var1, int var2, int var3, int var4, int var5, String var6);
boolean CP_Page_DrawRasterImageFromFile(Pointer var1, int var2, int var3, int var4, int var5, String var6, int var7);
boolean CP_Page_DrawRasterImageFromData(Pointer var1, int var2, int var3, int var4, int var5, byte[] var6, int var7, int var8);
boolean CP_Page_DrawRasterImageFromPixels(Pointer var1, int var2, int var3, byte[] var4, int var5, int var6, int var7, int var8, int var9, int var10);
boolean CP_BlackMark_EnableBlackMarkMode(Pointer var1);
boolean CP_BlackMark_DisableBlackMarkMode(Pointer var1);
boolean CP_BlackMark_SetBlackMarkMaxFindLength(Pointer var1, int var2);
boolean CP_BlackMark_FindNextBlackMark(Pointer var1);
boolean CP_BlackMark_SetBlackMarkPaperPrintPosition(Pointer var1, int var2);
boolean CP_BlackMark_SetBlackMarkPaperCutPosition(Pointer var1, int var2);
boolean CP_BlackMark_FullCutBlackMarkPaper(Pointer var1);
boolean CP_BlackMark_HalfCutBlackMarkPaper(Pointer var1);
boolean CP_Label_EnableLabelMode(Pointer var1);
boolean CP_Label_DisableLabelMode(Pointer var1);
boolean CP_Label_CalibrateLabel(Pointer var1);
boolean CP_Label_FeedLabel(Pointer var1);
boolean CP_Label_PageBegin(Pointer var1, int var2, int var3, int var4, int var5, int var6);
boolean CP_Label_PagePrint(Pointer var1, int var2);
boolean CP_Label_DrawText(Pointer var1, int var2, int var3, int var4, int var5, String var6);
boolean CP_Label_DrawTextInUTF8(Pointer var1, int var2, int var3, int var4, int var5, WString var6);
boolean CP_Label_DrawTextInGBK(Pointer var1, int var2, int var3, int var4, int var5, WString var6);
boolean CP_Label_DrawBarcode(Pointer var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, String var9);
boolean CP_Label_DrawQRCode(Pointer var1, int var2, int var3, int var4, int var5, int var6, int var7, String var8);
boolean CP_Label_DrawPDF417Code(Pointer var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, String var9);
boolean CP_Label_DrawImageFromFile(Pointer var1, int var2, int var3, int var4, int var5, String var6, int var7, int var8);
boolean CP_Label_DrawImageFromData(Pointer var1, int var2, int var3, int var4, int var5, byte[] var6, int var7, int var8, int var9);
boolean CP_Label_DrawImageFromPixels(Pointer var1, int var2, int var3, byte[] var4, int var5, int var6, int var7, int var8, int var9, int var10, int var11);
boolean CP_Label_DrawLine(Pointer var1, int var2, int var3, int var4, int var5, int var6, int var7);
boolean CP_Label_DrawRect(Pointer var1, int var2, int var3, int var4, int var5, int var6);
boolean CP_Label_DrawBox(Pointer var1, int var2, int var3, int var4, int var5, int var6, int var7);
int CP_Proto_QueryBatteryLevel(Pointer var1, int var2);
public static class CP_Label_DrawImageFromData_Helper {
public CP_Label_DrawImageFromData_Helper() {
}
public static boolean DrawImageFromBufferedImage(Pointer handle, int x, int y, int dstw, int dsth, BufferedImage image, int binaryzation_method, int compression_method) {
boolean result = false;
try {
ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(image, "png", os);
byte[] data = os.toByteArray();
result = AutoReplyPrint.INSTANCE.CP_Label_DrawImageFromData(handle, x, y, dstw, dsth, data, data.length, binaryzation_method, compression_method);
} catch (Throwable var11) {
var11.printStackTrace();
}
return result;
}
}
public static class CP_Label_TextStyle {
private int style = 0;
public CP_Label_TextStyle(boolean bold, boolean underline, boolean highlight, boolean strikethrough, int rotation, int widthscale, int heightscale) {
int style = 0;
if (bold) {
style |= 1;
}
if (underline) {
style |= 2;
}
if (highlight) {
style |= 4;
}
if (strikethrough) {
style |= 8;
}
style |= rotation << 4;
style |= widthscale << 8;
style |= heightscale << 12;
this.style = style;
}
public int getStyle() {
return this.style;
}
}
public interface CP_OnBluetoothDeviceDiscovered_Callback extends Callback {
void CP_OnBluetoothDeviceDiscovered(String var1, String var2, Pointer var3);
}
public interface CP_OnNetPrinterDiscovered_Callback extends Callback {
void CP_OnNetPrinterDiscovered(String var1, String var2, String var3, String var4, Pointer var5);
}
public interface CP_OnPortClosedEvent_Callback extends Callback {
void CP_OnPortClosedEvent(Pointer var1, Pointer var2);
}
public interface CP_OnPortOpenFailedEvent_Callback extends Callback {
void CP_OnPortOpenFailedEvent(Pointer var1, String var2, Pointer var3);
}
public interface CP_OnPortOpenedEvent_Callback extends Callback {
void CP_OnPortOpenedEvent(Pointer var1, String var2, Pointer var3);
}
public interface CP_OnPortReceivedEvent_Callback extends Callback {
void CP_OnPortReceivedEvent(Pointer var1, Pointer var2, int var3, Pointer var4);
}
public interface CP_OnPortWrittenEvent_Callback extends Callback {
void CP_OnPortWrittenEvent(Pointer var1, Pointer var2, int var3, Pointer var4);
}
public interface CP_OnPrinterPrintedEvent_Callback extends Callback {
void CP_OnPrinterPrintedEvent(Pointer var1, int var2, Pointer var3);
}
public interface CP_OnPrinterReceivedEvent_Callback extends Callback {
void CP_OnPrinterReceivedEvent(Pointer var1, int var2, Pointer var3);
}
public interface CP_OnPrinterStatusEvent_Callback extends Callback {
void CP_OnPrinterStatusEvent(Pointer var1, long var2, long var4, Pointer var6);
}
public static class CP_Page_DrawRasterImageFromData_Helper {
public CP_Page_DrawRasterImageFromData_Helper() {
}
public static boolean DrawRasterImageFromBufferedImage(Pointer handle, int x, int y, int dstw, int dsth, BufferedImage image, int binaryzation_method) {
boolean result = false;
try {
ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(image, "png", os);
byte[] data = os.toByteArray();
result = AutoReplyPrint.INSTANCE.CP_Page_DrawRasterImageFromData(handle, x, y, dstw, dsth, data, data.length, binaryzation_method);
} catch (Throwable var10) {
var10.printStackTrace();
}
return result;
}
}
public static class CP_Port_EnumCom_Helper {
public CP_Port_EnumCom_Helper() {
}
public static String[] EnumCom() {
IntByReference pcbNeeded = new IntByReference();
AutoReplyPrint.INSTANCE.CP_Port_EnumCom((byte[]) null, 0, pcbNeeded);
if (pcbNeeded.getValue() > 0) {
byte[] pBuf = new byte[pcbNeeded.getValue()];
if (pBuf != null) {
AutoReplyPrint.INSTANCE.CP_Port_EnumCom(pBuf, pBuf.length, (IntByReference) null);
String s = new String(pBuf);
String[] ss = s.split("\u0000");
return ss;
}
}
return null;
}
}
public static class CP_Port_EnumLpt_Helper {
public CP_Port_EnumLpt_Helper() {
}
public static String[] EnumLpt() {
IntByReference pcbNeeded = new IntByReference();
AutoReplyPrint.INSTANCE.CP_Port_EnumLpt((byte[]) null, 0, pcbNeeded);
if (pcbNeeded.getValue() > 0) {
byte[] pBuf = new byte[pcbNeeded.getValue()];
if (pBuf != null) {
AutoReplyPrint.INSTANCE.CP_Port_EnumLpt(pBuf, pBuf.length, (IntByReference) null);
String s = new String(pBuf);
String[] ss = s.split("\u0000");
return ss;
}
}
return null;
}
}
public static class CP_Port_EnumUsb_Helper {
public CP_Port_EnumUsb_Helper() {
}
public static String[] EnumUsb() {
IntByReference pcbNeeded = new IntByReference();
AutoReplyPrint.INSTANCE.CP_Port_EnumUsb((byte[]) null, 0, pcbNeeded);
if (pcbNeeded.getValue() > 0) {
byte[] pBuf = new byte[pcbNeeded.getValue()];
if (pBuf != null) {
AutoReplyPrint.INSTANCE.CP_Port_EnumUsb(pBuf, pBuf.length, (IntByReference) null);
String s = new String(pBuf);
String[] ss = s.split("\u0000");
return ss;
}
}
return null;
}
}
public static class CP_Pos_PrintRasterImageFromData_Helper {
public CP_Pos_PrintRasterImageFromData_Helper() {
}
public static boolean PrintRasterImageFromBufferedImage(Pointer handle, int dstw, int dsth, BufferedImage image, int binaryzation_method, int compression_method) {
boolean result = false;
try {
ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(image, "png", os);
byte[] data = os.toByteArray();
result = AutoReplyPrint.INSTANCE.CP_Pos_PrintRasterImageFromData(handle, dstw, dsth, data, data.length, binaryzation_method, compression_method);
} catch (Throwable var9) {
var9.printStackTrace();
}
return result;
}
}
public static class CP_PrinterStatus {
private long error_status = 0L;
private long info_status = 0L;
public CP_PrinterStatus(long error_status, long info_status) {
this.error_status = error_status;
this.info_status = info_status;
}
public long errorStatus() {
return this.error_status;
}
public long infoStatus() {
return this.info_status;
}
public boolean ERROR_OCCURED() {
return this.error_status != 0L;
}
public boolean ERROR_CUTTER() {
return (this.error_status & 1L) != 0L;
}
public boolean ERROR_FLASH() {
return (this.error_status & 2L) != 0L;
}
public boolean ERROR_NOPAPER() {
return (this.error_status & 4L) != 0L;
}
public boolean ERROR_VOLTAGE() {
return (this.error_status & 8L) != 0L;
}
public boolean ERROR_MARKER() {
return (this.error_status & 16L) != 0L;
}
public boolean ERROR_ENGINE() {
return (this.error_status & 32L) != 0L;
}
public boolean ERROR_OVERHEAT() {
return (this.error_status & 64L) != 0L;
}
public boolean ERROR_COVERUP() {
return (this.error_status & 128L) != 0L;
}
public boolean ERROR_MOTOR() {
return (this.error_status & 256L) != 0L;
}
public boolean INFO_LABELPAPER() {
return (this.info_status & 2L) != 0L;
}
public boolean INFO_LABELMODE() {
return (this.info_status & 4L) != 0L;
}
public boolean INFO_HAVEDATA() {
return (this.info_status & 8L) != 0L;
}
public boolean INFO_NOPAPERCANCELED() {
return (this.info_status & 16L) != 0L;
}
public boolean INFO_PAPERNOFETCH() {
return (this.info_status & 32L) != 0L;
}
public boolean INFO_PRINTIDLE() {
return (this.info_status & 64L) != 0L;
}
public boolean INFO_RECVIDLE() {
return (this.info_status & 128L) != 0L;
}
}
public static class CP_Printer_GetPrinterFirmwareVersion_Helper {
public CP_Printer_GetPrinterFirmwareVersion_Helper() {
}
public static String GetPrinterFirmwareVersion(Pointer handle) {
IntByReference pcbNeeded = new IntByReference();
AutoReplyPrint.INSTANCE.CP_Printer_GetPrinterFirmwareVersion(handle, (byte[]) null, 0, pcbNeeded);
if (pcbNeeded.getValue() > 0) {
byte[] pBuf = new byte[pcbNeeded.getValue()];
if (pBuf != null) {
AutoReplyPrint.INSTANCE.CP_Printer_GetPrinterFirmwareVersion(handle, pBuf, pBuf.length, (IntByReference) null);
String s = new String(pBuf);
return s;
}
}
return null;
}
}
public static class CP_RTSTATUS_Helper {
public CP_RTSTATUS_Helper() {
}
public static boolean CP_RTSTATUS_DRAWER_OPENED(long status) {
return (status >> 0 & 4L) == 0L;
}
public static boolean CP_RTSTATUS_OFFLINE(long status) {
return (status >> 0 & 8L) == 8L;
}
public static boolean CP_RTSTATUS_COVERUP(long status) {
return (status >> 8 & 4L) == 4L;
}
public static boolean CP_RTSTATUS_FEED_PRESSED(long status) {
return (status >> 8 & 8L) == 8L;
}
public static boolean CP_RTSTATUS_NOPAPER(long status) {
return (status >> 8 & 32L) == 32L;
}
public static boolean CP_RTSTATUS_ERROR_OCCURED(long status) {
return (status >> 8 & 64L) == 64L;
}
public static boolean CP_RTSTATUS_CUTTER_ERROR(long status) {
return (status >> 16 & 8L) == 8L;
}
public static boolean CP_RTSTATUS_UNRECOVERABLE_ERROR(long status) {
return (status >> 16 & 32L) == 32L;
}
public static boolean CP_RTSTATUS_DEGREE_OR_VOLTAGE_OVERRANGE(long status) {
return (status >> 16 & 64L) == 64L;
}
public static boolean CP_RTSTATUS_PAPER_NEAREND(long status) {
return (status >> 24 & 12L) == 12L;
}
public static boolean CP_RTSTATUS_PAPER_TAKEOUT(long status) {
return (status >> 24 & 4L) == 4L;
}
}
public static class GetLibraryPath_Helper {
public GetLibraryPath_Helper() {
}
private static String GetLibraryPath() {
if (Platform.isWindows()) {
return Platform.is64Bit() ? "/autoreplyprint/win64/autoreplyprint.dll" : "/autoreplyprint/win32/autoreplyprint.dll";
} else if (Platform.isLinux()) {
return Platform.is64Bit() ? "/autoreplyprint/linux-x64/libautoreplyprint.so" : "/autoreplyprint/linux-x86/libautoreplyprint.so";
} else {
return Platform.isMac() ? "/autoreplyprint/mac/libautoreplyprint.so" : "autoreplyprint";
}
}
}
}

View File

@@ -0,0 +1,60 @@
package com.dpkj.modules.autoReplyPrint.utils;
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Platform;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class AutoReplyPrint2 {
public static AutoReplyPrint2Sdk getAutoReplyPrint2SDK() throws AutoReplyPrint2RegistrationException {
try {
return Native.load(GetLibraryPath_Helper.GetLibraryPath(), AutoReplyPrint2Sdk.class);
} catch (UnsatisfiedLinkError e) {
log.info("[AutoReplyPrint2][AutoReplyPrint2.getAutoReplyPrint2SDK] SDK注册失败 {}", e.getMessage());
throw new AutoReplyPrint2RegistrationException("Failed to load AutoReplyPrint2Sdk library: ", e);
}
}
/**
* 定义接口映射本地库中的函数。
*/
public interface AutoReplyPrint2Sdk extends Library {
/**
* 获取打印机固件版本
* @return
*/
String CPPrinterGetPrinterFirmwareVersion();
}
/**
* 定义自定义异常类,用于表示注册控件时发生的错误
*/
public static class AutoReplyPrint2RegistrationException extends Exception {
public AutoReplyPrint2RegistrationException(String message) {
super(message);
}
public AutoReplyPrint2RegistrationException(String message, Throwable cause) {
super(message, cause);
}
}
public static class GetLibraryPath_Helper {
public GetLibraryPath_Helper() {
}
private static String GetLibraryPath() {
if (Platform.isWindows()) {
return Platform.is64Bit() ? "/autoreplyprint/win64/autoreplyprint.dll" : "/autoreplyprint/win32/autoreplyprint.dll";
} else if (Platform.isLinux()) {
return Platform.is64Bit() ? "/autoreplyprint/linux-x64/libautoreplyprint.so" : "/autoreplyprint/linux-x86/libautoreplyprint.so";
} else {
return Platform.isMac() ? "/autoreplyprint/mac/libautoreplyprint.so" : "autoreplyprint";
}
}
}
}

View File

@@ -0,0 +1,11 @@
package com.dpkj.modules.autoReplyPrint.utils;
import com.sun.jna.Native;
import com.sun.jna.win32.StdCallLibrary;
public interface MyLibrary extends StdCallLibrary {
MyLibrary INSTANCE = (MyLibrary) Native.load("D:\\DPKJ\\yinyitong-zhongyuyuan-dll\\src\\main\\resources\\autoreplyprint\\win64\\autoreplyprint.dll", MyLibrary.class);
// 映射DLL中的函数
String CP_Printer_GetPrinterFirmwareVersion();
}

View File

@@ -0,0 +1,13 @@
package com.dpkj.modules.autoReplyPrint.utils;
public class MyNativeClass {
public static native void ICC_Reader_Open(String devName);
static {
System.load("D:\\DPKJ\\yinyitong-zhongyuyuan-dll\\src\\main\\resources\\win32-x86\\UnPack.dll");
}
public static void main(String[] args) {
ICC_Reader_Open("USB1");
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,30 @@
package com.dpkj.modules.autoReplyPrint.utils;
import javax.swing.*;
import java.io.FileInputStream;
import java.io.InputStream;
public class TestUtils {
public static byte[] ReadFromFile(String fileName) {
byte[] data = null;
try {
InputStream in = new FileInputStream(fileName);
data = new byte[in.available()];
in.read(data);
in.close();
} catch (Throwable tr) {
tr.printStackTrace();
}
return data;
}
public static void showMessageOnUiThread(final String msg) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JOptionPane.showMessageDialog(null, msg);
}
});
}
}

View File

@@ -16,8 +16,10 @@ public class CardReaderUtil {
public static CardReaderSdk getCardReaderSDK() throws CardReaderRegistrationException {
try {
return Native.load("UnPack", CardReaderSdk.class);
//return Native.load("SSSE32", CardReaderSdk.class);
//return Native.load("autoreplyprint", CardReaderSdk.class);
} catch (UnsatisfiedLinkError e) {
log.info("[CardReader][CardReaderUtil.getCardReaderSDK] SDK注册失败 {}", e.getMessage());
log.info("[CardReader][AutoReplyPrint2.getCardReaderSDK] SDK注册失败 {}", e.getMessage());
throw new CardReaderRegistrationException("Failed to load CardReaderSdk library: ", e);
}
}

View File

@@ -1,6 +1,5 @@
package com.dpkj.modules.receiptsPrint.service.impl;
import com.caysn.autoreplyprint.AutoReplyPrint;
import com.dpkj.modules.receiptsPrint.service.ReceiptsPrintService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -16,7 +15,7 @@ public class ReceiptsPrintServiceImpl implements ReceiptsPrintService {
@Override
public void test() {
System.out.println(AutoReplyPrint.CP_CharacterSet_CHINA);
//System.out.println(AutoReplyPrint.CP_CharacterSet_CHINA);
}
}