yinyitong-zhongyuyuan-dll-hang/src/main/java/com/dpkj/modules/autoReplyPrint/utils/AutoReplyPrint.java

2194 lines
90 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
/**
* 获取开发包版本字符串
*
* @return 返回开发包版本
*/
String CP_Library_Version();
/**
* 枚举本地串口
*
* @param pBuf 用来保存端口列表的缓冲区
* @param cbBuf 缓冲区字节数
* @param pcbNeeded 需要的缓冲区字节数
* @return 枚举到的端口数量
*/
int CP_Port_EnumCom(byte[] pBuf, int cbBuf, IntByReference pcbNeeded);
/**
* 枚举本地并口
*
* @param pBuf 用来保存端口列表的缓冲区
* @param cbBuf 缓冲区字节数
* @param pcbNeeded 需要的缓冲区字节数
* @return 枚举到的端口数量
*/
int CP_Port_EnumLpt(byte[] pBuf, int cbBuf, IntByReference pcbNeeded);
/**
* 枚举本地 USB 打印口
*
* @param pBuf 用来保存端口列表的缓冲区
* @param cbBuf 缓冲区字节数
* @param pcbNeeded 需要的缓冲区字节数
* @return 枚举到的端口数量
*/
int CP_Port_EnumUsb(byte[] pBuf, int cbBuf, IntByReference pcbNeeded);
/**
* 枚举网络打印机
*
* @param timeout 超时毫秒时间
* @param cancel 取消标记位,如果设为非零,则枚举提前退出
* @param on_discovered 枚举回调接口
* @param private_data 传给回调接口的参数
* @return 无
*/
void CP_Port_EnumNetPrinter(int timeout, IntByReference cancel, CP_OnNetPrinterDiscovered_Callback on_discovered, Pointer private_data);
/**
* 枚举蓝牙打印机
*
* @param timeout 超时毫秒时间
* @param cancel 取消标记位,如果设为非零,则枚举提前退出
* @param on_discovered 枚举回调接口
* @param private_data 传给回调接口的参数
* @return 无
*/
void CP_Port_EnumBtDevice(int timeout, IntByReference cancel, CP_OnBluetoothDeviceDiscovered_Callback on_discovered, Pointer private_data);
/**
* 枚举 BLE 蓝牙打印机
*
* @param timeout 超时毫秒时间
* @param cancel 取消标记位,如果设为非零,则枚举提前退出
* @param on_discovered 枚举回调接口
* @param private_data 传给回调接口的参数
* @return 无
*/
void CP_Port_EnumBleDevice(int timeout, IntByReference cancel, CP_OnBluetoothDeviceDiscovered_Callback on_discovered, Pointer private_data);
/**
* 打开串口
*
* @param name 端口名称例如COM1COM2COM3...COM11...
* @param baudrate 波特率,一般取 9600,19200,38400,57600,115200。
* 需要和打印机波特率保持一致,建议使用高波特率以获得较好的打印速度
* @param databits 数据位,范围[4,8]
* @param parity 校验位,各值定义如下:
* 值 定义
* 0 无校验
* 1 奇校验
* 2 偶校验
* 3 标记校验
* 4 空白校验
* @param stopbits 停止位,各值定义如下:
* 值 定义
* 0 1 位停止位
* 1 1.5 位停止位
* 2 2 位停止位
* @param flowcontrol 流控制
* @param autoreplymode 0 不开启自动回传模式1 开启自动回传模式
* 注意:仅部分机型支持自动回传模式,是否支持请询问卖家
* 启动自动回传模式之后,打印机会自动回传状态
* 不启动则无法自动获取打印机状态
* @return 返回打开的端口句柄。非零表示打开成功,零表示打开失败。
* 备注:如果串口被占用,打开串口会失败。
* 如果波特率和打印机波特率不匹配,则无法打印。
*/
Pointer CP_Port_OpenCom(String name, int baudrate, int databits, int parity, int stopbits, int flowcontrol, int autoreplymode);
/**
* 打开并口
*
* @param name 端口名称例如LPT1,LPT2,LPT3...
* @return 返回打开的端口句柄。非零表示打开成功,零表示打开失败。
*
* 备注:并口只有单向通讯,只可写不可读。
* 一切查询状态的函数,对并口来说均是无效的。
*/
Pointer CP_Port_OpenLpt(String name);
/**
* 打开 USB
*
* @param name 端口名称,可由 EnumUsb 获得,也可以不指定,这时候,如果找到 USB 打印机,会直接打开
* @param autoreplymode 0 不开启自动回传模式1 开启自动回传模式
* 注意:仅部分机型支持自动回传模式,是否支持请询问卖家
* 启动自动回传模式之后,打印机会自动回传状态,不启动则无法自动获取打印机状态
* @return 返回打开的端口句柄。非零表示打开成功,零表示打开失败。
* 备注USB 打印机接到电脑上,如果设备管理器中出现了 USB Printing Support则可以使用该函数打开。
*/
Pointer CP_Port_OpenUsb(String name, int autoreplymode);
/**
* 打开网口
*
* @param local_ip 绑定到本地 IP用于多网卡或多个本地 IP 时,选择指定的 IP传入 0 表示不指定
* @param dest_ip 地址或名称例如192.168.1.87
* @param dest_port 端口号固定值9100
* @param timeout 连接超时
* @param autoreplymode 0 不开启自动回传模式1 开启自动回传模式
* 注意:仅部分机型支持自动回传模式,是否支持请询问卖家
* 启动自动回传模式之后,打印机会自动回传状态,不启动则无法自动获取打印机状态
* @return 返回打开的端口句柄。非零表示打开成功,零表示打开失败。
* 备注PC 和打印机需要同网段的才可以连接
*/
Pointer CP_Port_OpenTcp(String local_ip, String dest_ip, short dest_port, int timeout, int autoreplymode);
/**
* 通过 SPP 连接蓝牙打印机
*
* @param address 打印机地址,例如:"01:02:03:04:05:06"
* @param autoreplymode 0 不开启自动回传模式1 开启自动回传模式
* 注意:仅部分机型支持自动回传模式,是否支持请询问卖家
* 启动自动回传模式之后,打印机会自动回传状态
* 不启动则无法自动获取打印机状态
* @return 返回打开的端口句柄。非零表示打开成功,零表示打开失败。
*
* 备注:仅适用于 Android
*/
Pointer CP_Port_OpenBtSpp(String address, int autoreplymode);
/**
* 通过 BLE 连接蓝牙打印机
*
* @param address 打印机地址,例如:"01:02:03:04:05:06"
* @param autoreplymode 0 不开启自动回传模式1 开启自动回传模式
* 注意:仅部分机型支持自动回传模式,是否支持请询问卖家
* 启动自动回传模式之后,打印机会自动回传状态,不启动则无法自动获取打印机状态
* @return 返回打开的端口句柄。非零表示打开成功,零表示打开失败。
*
* 备注:仅适用于 Android、iOS、macOS
*/
Pointer CP_Port_OpenBtBle(String address, int autoreplymode);
/**
* 向端口写入数据
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param buffer 要写入的数据
* @param count 要写入的长度
* @param timeout 写入超时毫秒
* @return 返回写入的字节数,-1 表示写入失败
*/
int CP_Port_Write(Pointer handle, byte[] buffer, int count, int timeout);
/**
* 从端口接收数据
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param buffer 接收数据的缓冲区
* @param count 要接收的数据长度
* @param timeout 读取超时毫秒
* @return 返回读取的字节数,-1 表示失败
*/
int CP_Port_Read(Pointer vahandler1, byte[] buffer, int count, int timeout);
/**
* 从端口接收数据直到指定字节
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param buffer 接收数据的缓冲区
* @param count 要接收的数据长度
* @param timeout 读取超时毫秒
* @param breakByte 结束读取字符
* @return 返回读取的字节数,-1 表示失败
*/
int CP_Port_ReadUntilByte(Pointer handle, byte[] buffer, int count, int timeout, byte breakByte);
/**
* 返回可读取的字节数
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 返回可读取的字节数,-1 表示失败
*/
int CP_Port_Available(Pointer handle);
/**
* 忽略接收缓冲区的数据
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 成功返回 true失败返回 false。
*/
boolean CP_Port_SkipAvailable(Pointer handle);
/**
* 连接是否有效
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 如果端口已打开,且状态持续更新,则返回 true
* 如果端口未打开,已关闭,或状态超过 6 秒未更新,则返回 false
*/
boolean CP_Port_IsConnectionValid(Pointer handle);
/**
* 检查端口是否打开
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 如果端口已打开,且连接未断开未关闭,则返回 true
* 如果端口未打开,或连接已断开已关闭,则返回 false
*/
boolean CP_Port_IsOpened(Pointer handle);
/**
* 关闭端口
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 成功返回 true失败返回 false。
*/
boolean CP_Port_Close(Pointer handle);
/**
* 添加回调接口,端口打开成功
*
* @param event 回调接口
* @param private_data 传给回调接口的参数
* @return 成功返回 true失败返回 false。
*/
boolean CP_Port_AddOnPortOpenedEvent(CP_OnPortOpenedEvent_Callback event, Pointer private_data);
/**
* 添加回调接口,端口打开失败
*
* @param event 回调接口
* @param private_data 传给回调接口的参数
* @return 成功返回 true失败返回 false。
*/
boolean CP_Port_AddOnPortOpenFailedEvent(CP_OnPortOpenFailedEvent_Callback event, Pointer private_data);
/**
* 添加回调接口,端口关闭
*
* @param event 回调接口
* @param private_data 传给回调接口的参数
* @return 成功返回 true失败返回 false。
*/
boolean CP_Port_AddOnPortClosedEvent(CP_OnPortClosedEvent_Callback event, Pointer private_data);
/**
* 添加回调接口,端口写入数据
*
* @param event 回调接口
* @param private_data 传给回调接口的参数
* @return 成功返回 true失败返回 false。
*/
boolean CP_Port_AddOnPortWrittenEvent(CP_OnPortWrittenEvent_Callback event, Pointer private_data);
/**
* 添加回调接口,端口收到数据
*
* @param event 回调接口
* @param private_data 传给回调接口的参数
* @return 成功返回 true失败返回 false。
*/
boolean CP_Port_AddOnPortReceivedEvent(CP_OnPortReceivedEvent_Callback event, Pointer private_data);
/**
* 移除回调接口
*
* @param event 回调接口
* @return 成功返回 true失败返回 false。
*/
boolean CP_Port_RemoveOnPortOpenedEvent(CP_OnPortOpenedEvent_Callback event);
/**
* 移除回调接口
*
* @param event 回调接口
* @return 成功返回 true失败返回 false。
*/
boolean CP_Port_RemoveOnPortOpenFailedEvent(CP_OnPortOpenFailedEvent_Callback event);
/**
* 移除回调接口
*
* @param event 回调接口
* @return 成功返回 true失败返回 false。
*/
boolean CP_Port_RemoveOnPortClosedEvent(CP_OnPortClosedEvent_Callback event);
/**
* 移除回调接口
*
* @param event 回调接口
* @return 成功返回 true失败返回 false。
*/
boolean CP_Port_RemoveOnPortWrittenEvent(CP_OnPortWrittenEvent_Callback event);
/**
* 移除回调接口
*
* @param event 回调接口
* @return 成功返回 true失败返回 false。
*/
boolean CP_Port_RemoveOnPortReceivedEvent(CP_OnPortReceivedEvent_Callback event);
/**
* 添加回调接口,打印机状态更新
*
* @param event 回调接口
* @param private_data 传给回调接口的参数
* @return 成功返回 true失败返回 false。
*/
boolean CP_Printer_AddOnPrinterStatusEvent(CP_OnPrinterStatusEvent_Callback event, Pointer private_data);
/**
* 添加回调接口,打印机已接收字节数更新
*
* @param event 回调接口
* @param private_data 传给回调接口的参数
* @return 成功返回 true失败返回 false。
*/
boolean CP_Printer_AddOnPrinterReceivedEvent(CP_OnPrinterReceivedEvent_Callback event, Pointer private_data);
/**
* 添加回调接口,打印机已打印页面 ID 更新
*
* @param event 回调接口
* @param private_data 传给回调接口的参数
* @return 成功返回 true失败返回 false。
*/
boolean CP_Printer_AddOnPrinterPrintedEvent(CP_OnPrinterPrintedEvent_Callback event, Pointer private_data);
/**
* 移除回调接口
*
* @param event 回调接口
* @return 成功返回 true失败返回 false。
*/
boolean CP_Printer_RemoveOnPrinterStatusEvent(CP_OnPrinterStatusEvent_Callback event);
/**
* 移除回调接口
*
* @param event 回调接口
* @return 成功返回 true失败返回 false。
*/
boolean CP_Printer_RemoveOnPrinterReceivedEvent(CP_OnPrinterReceivedEvent_Callback event);
/**
* 移除回调接口
*
* @param event 回调接口
* @return 成功返回 true失败返回 false。
*/
boolean CP_Printer_RemoveOnPrinterPrintedEvent(CP_OnPrinterPrintedEvent_Callback event);
/**
* 获取打印机分辨率信息
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param width_mm 标签最大宽度
* @param height_mm 标签最大高度
* @param dots_per_mm 每毫米打印点数
* @return 成功返回 true失败返回 false。
*/
boolean CP_Printer_GetPrinterResolutionInfo(Pointer handle, IntByReference width_mm, IntByReference height_mm, IntByReference dots_per_mm);
/**
* 获取打印机固件版本
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param pBuf 缓冲区
* @param cbBuf 缓冲区字节数
* @param pcbNeeded 需要的缓冲区字节数
* @return 成功返回 true失败返回 false。
*/
boolean CP_Printer_GetPrinterFirmwareVersion(Pointer handle, byte[] pBuf, int cbBuf, IntByReference pcbNeeded);
/**
* 获取打印机自动回传的状态
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param printer_error_status 打印机错误状态
* @param printer_info_status 打印机信息状态
* @param timestamp_ms 时间戳
* @return 成功返回 true失败返回 false。
*/
boolean CP_Printer_GetPrinterStatusInfo(Pointer handle, LongByReference printer_error_status, LongByReference printer_info_status, LongByReference timestamp_ms);
/**
* 获取打印机已接收字节数
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param printer_received_byte_count 打印机已接收字节数
* @param timestamp_ms 时间戳
* @return 成功返回 true失败返回 false。
*/
boolean CP_Printer_GetPrinterReceivedInfo(Pointer handle, IntByReference printer_received_byte_count, LongByReference timestamp_ms);
/**
* 获取打印机已打印的单据号
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param printer_printed_page_id 打印机已打印的单据号
* @param timestamp_ms 时间戳
* @return 成功返回 true失败返回 false。
*/
boolean CP_Printer_GetPrinterPrintedInfo(Pointer handle, IntByReference printer_printed_page_id, LongByReference timestamp_ms);
/**
* 获取打印机标签位置微调信息
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param label_print_position_adjustment 打印机标签打印位置微调
* @param label_tear_position_adjustment 打印机标签撕纸位置微调
* @param timestamp_ms 时间戳
* @return 成功返回 true失败返回 false。
*/
boolean CP_Printer_GetPrinterLabelPositionAdjustmentInfo(Pointer handle, DoubleByReference label_print_position_adjustment, DoubleByReference label_tear_position_adjustment, LongByReference timestamp_ms);
/**
* 设置标签打印位置和撕纸位置微调
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param label_print_position_adjustment 标签打印位置微调 mm微调不超过±4mm
* @param label_tear_position_adjustment 标签撕纸位置微调 mm微调不超过±4mm
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Printer_SetPrinterLabelPositionAdjustmentInfo(Pointer handle, double label_print_position_adjustment, double label_tear_position_adjustment);
/**
* 实时清除打印机缓存
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 成功返回 true失败返回 false。
*/
boolean CP_Printer_ClearPrinterBuffer(Pointer handle);
/**
* 实时清除打印机错误
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 成功返回 true失败返回 false。
*/
boolean CP_Printer_ClearPrinterError(Pointer handle);
/**
* 查询打印机实时状态
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param timeout 超时毫秒时间。查询等待时间不超过此时间。
* @return 返回值仅指示指令是否成功。成功返回实时状态,失败返回 0。
* 详细状态请查看 CP_RTSTATUS_XXX如果状态定义与实际机型不符以实测为准。
*/
int CP_Pos_QueryRTStatus(Pointer handle, int timeout);
/**
* 查询前面内容的打印结果
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param timeout 超时毫秒时间。查询打印结果等待时间不超过此时间。
* @return 返回值仅指示指令是否打印成功。返回 true 表示打印成功,返回 false 表示打印失败或查询失败。
*/
boolean CP_Pos_QueryPrintResult(Pointer handle, int timeout);
/**
* 开钱箱(产生钱箱脉冲)
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nDrawerIndex 钱箱编号各值说明如下0 钱箱引脚 21 钱箱引脚 5
* @param nHighLevelTime 高电平毫秒时间
* @param nLowLevelTime 低电平毫秒时间
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_KickOutDrawer(Pointer handle, int nDrawerIndex, int nHighLevelTime, int nLowLevelTime);
/**
* 蜂鸣器鸣叫
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nBeepCount 鸣叫次数
* @param nBeepMs 蜂鸣毫秒时间,取值范围[100,900]。取整到百毫秒。
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_Beep(Pointer handle, int nBeepCount, int nBeepMs);
/**
* 走纸到切刀位置并半切纸
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_FeedAndHalfCutPaper(Pointer handle);
/**
* 切刀全切
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_FullCutPaper(Pointer handle);
/**
* 切刀半切
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_HalfCutPaper(Pointer handle);
/**
* 打印机进纸指定行数
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param numLines 要进的行数
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_FeedLine(Pointer handle, int numLines);
/**
* 打印机进纸指定点数
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param numDots 要进的点数
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_FeedDot(Pointer handle, int numDots);
/**
* 打印机打印自检页
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_PrintSelfTestPage(Pointer handle);
/**
* 打印文本
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param str 要打印的字符串
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_PrintText(Pointer handle, String str);
/**
* 打印文本
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param str 要打印的字符串
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
* 该函数会将数据转为 UTF8 编码发送。
*/
boolean CP_Pos_PrintTextInUTF8(Pointer handle, WString str);
/**
* 打印文本
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param str 要打印的字符串
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
* 该函数会将数据转为 GBK 编码发送。
*/
boolean CP_Pos_PrintTextInGBK(Pointer handle, WString str);
/**
* 打印文本
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param str 要打印的字符串
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
* 该函数会将数据转为 BIG5 编码发送。
*/
boolean CP_Pos_PrintTextInBIG5(Pointer handle, WString str);
/**
* 打印文本
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param str 要打印的字符串
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
* 该函数会将数据转为 ShiftJIS 编码发送。
*/
boolean CP_Pos_PrintTextInShiftJIS(Pointer handle, WString str);
/**
* 打印文本
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param str 要打印的字符串
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
* 该函数会将数据转为 EUCKR 编码发送。
*/
boolean CP_Pos_PrintTextInEUCKR(Pointer handle, WString str);
/**
* 打印一维条码
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nBarcodeType 标识条码类型
* @param str 要打印的条码
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_PrintBarcode(Pointer handle, int nBarcodeType, String str);
/**
* 打印 CODE128 条码,该函数自动切换编码,以便节省空间
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param str 要打印的条码
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_PrintBarcode_Code128Auto(Pointer handle, String str);
/**
* 打印 QR 码
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nVersion 指定字符版本。取值范围:[0,16]。
* @param nECCLevel 指定纠错等级。取值范围:[1, 4]。
* @param str 要打印的 QR 码
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_PrintQRCode(Pointer handle, int nVersion, int nECCLevel, String str);
/**
* 打印 QR 码
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nQRCodeUnitWidth QRCode 码码块宽度,取值范围:[1, 16]。
* @param nECCLevel 指定纠错等级。取值范围:[1, 4]。
* @param str 要打印的 QR 码
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_PrintQRCodeUseEpsonCmd(Pointer handle, int nQRCodeUnitWidth, int nECCLevel, String str);
/**
* 打印两个 QR 码
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nQRCodeUnitWidth QRCode 码码块宽度,取值范围:[1, 8]。
* @param nQR1Position QRCode 位置
* @param nQR1Version 指定字符版本。取值范围:[0,16]。
* @param nQR1ECCLevel 指定纠错等级。取值范围:[1, 4]。
* @param strQR1 要打印的 QR 码
* @param nQR2Position QRCode 位置
* @param nQR2Version 指定字符版本。取值范围:[0,16]。
* @param nQR2ECCLevel 指定纠错等级。取值范围:[1, 4]。
* @param strQR2 要打印的 QR 码
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_PrintDoubleQRCode(Pointer handle, int nQRCodeUnitWidth, int nQR1Position, int nQR1Version, int nQR1ECCLevel, String strQR1, int nQR2Position, int nQR2Version, int nQR2ECCLevel, String strQR2);
/**
* 打印 PDF417 条码
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param columnCount 列数,取值范围[0,30]
* @param rowCount 行数,取值范围 0,[3,90]
* @param unitWidth 模块单元宽度,取值范围[2,8]
* @param rowHeight 行高,取值范围[2,8]
* @param nECCLevel 指定纠错等级。取值范围:[0,8]。
* @param dataProcessingMode 数据处理模式。0 选择标准 PDF4171 选择截断 PDF417。
* @param str 要打印的 PDF417 码
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_PrintPDF417BarcodeUseEpsonCmd(Pointer handle, int columnCount, int rowCount, int unitWidth, int rowHeight, int nECCLevel, int dataProcessingMode, String str);
/**
* 打印图片
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param dstw 要打印的宽度
* @param dsth 要打印的高度
* @param pszFile 图片的路径
* @param binaryzation_method 图片二值化算法。0 表示抖动算法1 表示阀值算法2 表示误差扩散法。具体效果请测试查看。
* @param compression_method 最终打印数据的压缩方式各值定义如下0 不压缩1 一级压缩2 二级压缩。
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_PrintRasterImageFromFile(Pointer handle, int dstw, int dsth, String pszFile, int binaryzation_method, int compression_method);
/**
* 打印图片(图片可由文件读取)
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param dstw 要打印的宽度
* @param dsth 要打印的高度
* @param data 图片数据。
* @param data_size 图片数据长度
* @param binaryzation_method 图片二值化算法。0 表示抖动算法1 表示阀值算法2 表示误差扩散法。具体效果请测试查看。
* @param compression_method 最终打印数据的压缩方式各值定义如下0 不压缩1 一级压缩2 二级压缩。
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_PrintRasterImageFromData(Pointer handle, int dstw, int dsth, byte[] data, int data_size, int binaryzation_method, int compression_method);
/**
* 打印图片像素数据
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param img_data 图片的像素数据。
* @param img_datalen 图片的像素数据字节数。
* @param img_width 图片的像素宽度。
* @param img_height 图片的像素高度。
* @param img_stride 图片水平跨度。表示每行字节数。
* @param img_format 图片像素数据格式各值定义如下1 mono2 monolsb3 gray4 r.g.b in byte-ordered5 b.g.r in byte-ordered6 a.r.g.b in byte-ordered7 r.g.b.a in byte-ordered8 a.b.g.r in byte-ordered9 b.g.r.a in byte-ordered。
* @param binaryzation_method 图片二值化算法。0 表示抖动算法1 表示阀值算法2 表示误差扩散法。具体效果请测试查看。
* @param compression_method 最终打印数据的压缩方式各值定义如下0 不压缩1 一级压缩2 二级压缩。
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_PrintRasterImageFromPixels(Pointer handle, byte[] img_data, int img_datalen, int img_width, int img_height, int img_stride, int img_format, int binaryzation_method, int compression_method);
/**
* 打印一条水平线
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nLineStartPosition 线段起点位置
* @param nLineEndPosition 线段终点位置
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_PrintHorizontalLine(Pointer handle, int nLineStartPosition, int nLineEndPosition);
/**
* 打印一条水平线
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nLineStartPosition 线段起点位置
* @param nLineEndPosition 线段终点位置
* @param nLineThickness 线段粗细
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_PrintHorizontalLineSpecifyThickness(Pointer handle, int nLineStartPosition, int nLineEndPosition, int nLineThickness);
/**
* 同一行上打印多条水平线,连续调用可打印曲线
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nLineCount 线段条数
* @param pLineStartPosition 线段起点位置
* @param pLineEndPosition 线段终点位置
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_PrintMultipleHorizontalLinesAtOneRow(Pointer handle, int nLineCount, int[] pLineStartPosition, int[] pLineEndPosition);
/**
* 复位打印机,清除设置
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_ResetPrinter(Pointer handle);
/**
* 设置打印速度(部分机型支持)
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nSpeed 打印速度,单位毫米每秒
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetPrintSpeed(Pointer handle, int nSpeed);
/**
* 设置打印浓度(部分机型支持)
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nDensity 设置打印浓度[0,15]
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetPrintDensity(Pointer handle, int nDensity);
/**
* 设置打印机为单字节编码
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetSingleByteMode(Pointer handle);
/**
* 设置打印机字符集
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nCharacterSet 打印机字符集,范围[0,15]
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetCharacterSet(Pointer handle, int nCharacterSet);
/**
* 设置字符代码页
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nCharacterCodepage 字符代码页,范围[0,255]
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetCharacterCodepage(Pointer handle, int nCharacterCodepage);
/**
* 设置打印机为多字节编码
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetMultiByteMode(Pointer handle);
/**
* 设置打印机多字节编码
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nEncoding 多字节编码,各值定义如下:
* 值 定义
* 0 GBK
* 1 UTF8
* 3 BIG5
* 4 SHIFT-JIS
* 5 EUC-KR
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetMultiByteEncoding(Pointer handle, int nEncoding);
/**
* 设置打印移动单位
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nHorizontalMovementUnit 水平移动单位
* @param nVerticalMovementUnit 垂直移动单位
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
* 移动单位设置为 200则 1mm=8 点。
*/
boolean CP_Pos_SetMovementUnit(Pointer handle, int nHorizontalMovementUnit, int nVerticalMovementUnit);
/**
* 设置打印区域左边空白
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nLeftMargin 左边空白
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetPrintAreaLeftMargin(Pointer handle, int nLeftMargin);
/**
* 设置打印区域宽度
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nWidth 打印区域宽度
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetPrintAreaWidth(Pointer handle, int nWidth);
/**
* 设置横向绝对打印位置
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nPosition 打印位置
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetHorizontalAbsolutePrintPosition(Pointer handle, int nPosition);
/**
* 设置横向相对打印位置
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nPosition 打印位置
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetHorizontalRelativePrintPosition(Pointer handle, int nPosition);
/**
* 设置纵向绝对打印位置,仅在页模式下有效。
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nPosition 打印位置
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetVerticalAbsolutePrintPosition(Pointer handle, int nPosition);
/**
* 设置纵向相对打印位置,仅在页模式下有效。
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nPosition 打印位置
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetVerticalRelativePrintPosition(Pointer handle, int nPosition);
/**
* 设置打印对齐方式
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nAlignment 打印对齐方式,各值定义如下:
* 值 定义
* 0 左对齐
* 1 中对齐
* 2 右对齐
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetAlignment(Pointer handle, int nAlignment);
/**
* 设置文本放大倍数
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nWidthScale 宽度放大倍数
* @param nHeightScale 高度放大倍数
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetTextScale(Pointer handle, int nWidthScale, int nHeightScale);
/**
* 设置英文字符字体类型
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nFontType 英文字符字体类型,各值定义如下:
* 值 定义
* 0 字型 A12x24
* 1 字型 B9x17
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetAsciiTextFontType(Pointer handle, int nFontType);
/**
* 设置文本加粗打印
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nBold 是否加粗,各值定义如下:
* 值 定义
* 0 不加粗
* 1 加粗
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetTextBold(Pointer handle, int nBold);
/**
* 设置文本下划线
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nUnderline 文本下划线,各值定义如下:
* 值 定义
* 0 无下划线
* 1 1 点下划线
* 2 2 点下划线
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetTextUnderline(Pointer handle, int nUnderline);
/**
* 设置文本倒置打印
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nUpsideDown 倒置打印,各值定义如下:
* 值 定义
* 0 不倒置打印
* 1 倒置打印
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetTextUpsideDown(Pointer handle, int nUpsideDown);
/**
* 设置黑白反显
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nWhiteOnBlack 黑白反显,各值定义如下:
* 值 定义
* 0 不黑白反显
* 1 黑白反显
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetTextWhiteOnBlack(Pointer handle, int nWhiteOnBlack);
/**
* 设置文本旋转 90 度打印
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nRotate 旋转打印,各值定义如下:
* 值 定义
* 0 不旋转打印
* 1 旋转 90 度打印
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetTextRotate(Pointer handle, int nRotate);
/**
* 设置行高
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nLineHeight 行高,范围[1,255]
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetTextLineHeight(Pointer handle, int nLineHeight);
/**
* 设置 ASCII 字符右边空白
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nSpacing 右边空白,范围[1,255]
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetAsciiTextCharRightSpacing(Pointer handle, int nSpacing);
/**
* 设置汉字文本字符左边空白和右边空白
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nLeftSpacing 左边空白,范围[1,255]
* @param nRightSpacing 右边空白,范围[1,255]
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetKanjiTextCharSpacing(Pointer handle, int nLeftSpacing, int nRightSpacing);
/**
* 设置条码和二维码单元宽度
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nBarcodeUnitWidth 条码单元宽度,取值范围:[1,6]
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetBarcodeUnitWidth(Pointer handle, int nBarcodeUnitWidth);
/**
* 设置条码高度
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nBarcodeHeight 定义条码高度。取值范围:[1,255]
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetBarcodeHeight(Pointer handle, int nBarcodeHeight);
/**
* 设置条码可读字符字体类型
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nFontType 指定可读字符的字体类型,各值定义如下:
* 值 类型
* 0 标准 ASCII
* 1 压缩 ASCII
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetBarcodeReadableTextFontType(Pointer handle, int nFontType);
/**
* 设置条码可读字符打印位置
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nTextPosition 条码可读字符位置,取值范围:[0, 3]。
* 各值定义如下:
* 值 定义
* 0 不显示可读字符
* 1 在条码下方显示可读字符
* 2 在条码上方显示可读字符
* 3 在条码上方和条码下方显示可读字符
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Pos_SetBarcodeReadableTextPosition(Pointer handle, int nTextPosition);
/**
* 选择页模式
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Page_SelectPageMode(Pointer handle);
/**
* 选择页模式,并设置移动单位和页面大小,还会设置其他一系列参数为默认值
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nHorizontalMovementUnit 水平移动单位
* @param nVerticalMovementUnit 垂直移动单位
* @param x 横向起始位置
* @param y 纵向起始位置
* @param width 打印区域宽度
* @param height 打印区域高度
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Page_SelectPageModeEx(Pointer handle, int nHorizontalMovementUnit, int nVerticalMovementUnit, int x, int y, int width, int height);
/**
* 退出页模式并回到标准模式
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Page_ExitPageMode(Pointer handle);
/**
* 页模式下打印内容
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Page_PrintPage(Pointer handle);
/**
* 页模式下清除页面
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Page_ClearPage(Pointer handle);
/**
* 页模式下设置页区域,页面最高 2000 点1mm=8点
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param x 横向起始位置
* @param y 纵向起始位置
* @param width 打印区域宽度
* @param height 打印区域高度
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Page_SetPageArea(Pointer handle, int x, int y, int width, int height);
/**
* 页模式下设置打印方向
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param nDirection 打印区域方向,各值定义如下:
* 0 从左到右
* 1 从下到上
* 2 从右到左
* 3 从上到下
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Page_SetPageDrawDirection(Pointer handle, int nDirection);
/**
* 页模式下画矩形
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param x 横向坐标
* @param y 纵向坐标
* @param width 矩形宽度
* @param height 矩形高度
* @param color 矩形颜色0 是白色1 是黑色
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Page_DrawRect(Pointer handle, int x, int y, int width, int height, int color);
/**
* 页模式下画矩形框
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param x 横向坐标
* @param y 纵向坐标
* @param width 矩形框宽度
* @param height 矩形框高度
* @param borderwidth 矩形框边框宽度
* @param bordercolor 矩形框边框颜色0 是白色1 是黑色
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Page_DrawBox(Pointer handle, int x, int y, int width, int height, int borderwidth, int bordercolor);
/**
* 页模式下画文本
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param x 横向坐标
* @param y 纵向坐标
* @param str 要打印的字符串
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Page_DrawText(Pointer handle, int x, int y, String str);
/**
* 页模式下画文本
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param x 横向坐标
* @param y 纵向坐标
* @param str 要打印的字符串
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
* 该函数会将数据转为 UTF8 编码发送。
*/
boolean CP_Page_DrawTextInUTF8(Pointer handle, int x, int y, WString str);
/**
* 页模式下画文本
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param x 横向坐标
* @param y 纵向坐标
* @param str 要打印的字符串
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
* 该函数会将数据转为 GBK 编码发送。
*/
boolean CP_Page_DrawTextInGBK(Pointer handle, int x, int y, WString str);
/**
* 页模式下画文本
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param x 横向坐标
* @param y 纵向坐标
* @param str 要打印的字符串
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
* 该函数会将数据转为 BIG5 编码发送。
*/
boolean CP_Page_DrawTextInBIG5(Pointer handle, int x, int y, WString str);
/**
* 页模式下画文本
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param x 横向坐标
* @param y 纵向坐标
* @param str 要打印的字符串
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
* 该函数会将数据转为 ShiftJIS 编码发送。
*/
boolean CP_Page_DrawTextInShiftJIS(Pointer handle, int x, int y, WString str);
/**
* 页模式下画文本
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param x 横向坐标
* @param y 纵向坐标
* @param str 要打印的字符串
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
* 该函数会将数据转为 EUCKR 编码发送。
*/
boolean CP_Page_DrawTextInEUCKR(Pointer handle, int x, int y, WString str);
/**
* 页模式下打印一维条码
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param x 横向坐标
* @param y 纵向坐标
* @param nBarcodeType 标识条码类型,各值定义如下:
* 值 类型
* 0x41 UPC-A
* 0x42 UPC-E
* 0x43 EAN13
* 0x44 EAN8
* 0x45 CODE39
* 0x46 ITF
* 0x47 CODABAR
* 0x48 CODE93
* 0x49 CODE128
* @param str 要打印的条码
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Page_DrawBarcode(Pointer handle, int x, int y, int nBarcodeType, String str);
/**
* 页模式下打印 QR 码
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param x 横向坐标
* @param y 纵向坐标
* @param nVersion 指定字符版本。取值范围:[0,16]。当 version 为 0 时,打印机根据字符串长度自动计算版本号。
* @param nECCLevel 指定纠错等级。取值范围:[1, 4]。各值定义如下:
* ECC 纠错等级
* 1 L7%,低纠错,数据多。
* 2 M15%,中纠错
* 3 Q优化纠错
* 4 H30%,最高纠错,数据少。
* @param str 要打印的 QR 码
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Page_DrawQRCode(Pointer handle, int x, int y, int nVersion, int nECCLevel, String str);
/**
* 页模式下打印图片
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param x 横向坐标
* @param y 纵向坐标
* @param dstw 要打印的宽度
* @param dsth 要打印的高度
* @param pszFile 图片的路径
* @param binaryzation_method 图片二值化算法。0 表示抖动算法1 表示阀值算法2 表示误差扩散法。具体效果请测试查看。
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Page_DrawRasterImageFromFile(Pointer handle, int x, int y, int dstw, int dsth, String pszFile, int binaryzation_method);
/**
* 页模式下打印图片(图片可由文件读取)
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param x 横向坐标
* @param y 纵向坐标
* @param dstw 要打印的宽度
* @param dsth 要打印的高度
* @param data 图片数据。
* @param data_size 图片数据长度
* @param binaryzation_method 图片二值化算法。0 表示抖动算法1 表示阀值算法2 表示误差扩散法。具体效果请测试查看。
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Page_DrawRasterImageFromData(Pointer handle, int x, int y, int dstw, int dsth, byte[] data, int data_size, int binaryzation_method);
/**
* 页模式下打印图片像素数据
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param x 横向坐标
* @param y 纵向坐标
* @param img_data 图片的像素数据。
* @param img_datalen 图片的像素数据字节数。
* @param img_width 图片的像素宽度。
* @param img_height 图片的像素高度。
* @param img_stride 图片水平跨度。表示每行字节数。
* @param img_format 图片像素数据格式,各值定义如下
* 值 定义
* 1 mono
* 2 monolsb
* 3 gray
* 4 r.g.b in byte-ordered
* 5 b.g.r in byte-ordered
* 6 a.r.g.b in byte-ordered
* 7 r.g.b.a in byte-ordered
* 8 a.b.g.r in byte-ordered
* 9 b.g.r.a in byte-ordered
* @param binaryzation_method 图片二值化算法。0 表示抖动算法1 表示阀值算法2 表示误差扩散法。具体效果请测试查看。
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Page_DrawRasterImageFromPixels(Pointer handle, int x, int y, byte[] img_data, int img_datalen, int img_width, int img_height, int img_stride, int img_format, int binaryzation_method);
/**
* 启用黑标模式,重启打印机生效
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_BlackMark_EnableBlackMarkMode(Pointer handle);
/**
* 禁用黑标模式
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_BlackMark_DisableBlackMarkMode(Pointer handle);
/**
* 设置黑标最大查找距离(重启仍有效)
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param maxFindLength 最大查找距离maxFindLength x 0.125 毫米)
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_BlackMark_SetBlackMarkMaxFindLength(Pointer handle, int maxFindLength);
/**
* 查找下一个黑标
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_BlackMark_FindNextBlackMark(Pointer handle);
/**
* 黑标模式下,设置起始打印位置的调整值
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param position 大于 0 则指定为进纸,小于 0 则指定为退纸。距离为 position x 0.125 毫米。
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_BlackMark_SetBlackMarkPaperPrintPosition(Pointer handle, int position);
/**
* 黑标模式下,设置切纸位置
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param position 大于 0 则指定为进纸,小于 0 则指定为退纸。距离为 position x 0.125 毫米。
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_BlackMark_SetBlackMarkPaperCutPosition(Pointer handle, int position);
/**
* 切刀全切
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_BlackMark_FullCutBlackMarkPaper(Pointer handle);
/**
* 切刀半切
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_BlackMark_HalfCutBlackMarkPaper(Pointer handle);
/**
* 启用标签模式
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Label_EnableLabelMode(Pointer handle);
/**
* 关闭标签模式
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Label_DisableLabelMode(Pointer handle);
/**
* 校准标签纸(更换不同规格标签纸,需要校准)
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Label_CalibrateLabel(Pointer handle);
/**
* 走纸到标签缝隙处
*
* @param handle 端口句柄,由 OpenXXX 返回
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Label_FeedLabel(Pointer handle);
/**
* 指示一个标签页面的开始,并设置标签页的大小,参考点坐标和页面旋转角度
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param x 页面起始点 x 坐标
* @param y 页面起始点 y 坐标
* @param width 页面页宽
* @param height 页面页高
* @param rotation 页面旋转。取值范围为{0,1}。为 0页面不旋转打印为 1页面旋转 90 度打印。
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Label_PageBegin(Pointer handle, int x, int y, int width, int height, int rotation);
/**
* 将标签页上的内容打印到标签纸上
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param copies 份数 [ 1 - 255 ]
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Label_PagePrint(Pointer handle, int copies);
/**
* 在标签页面上指定位置绘制文本。只能单行打印。
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param x 定义文本起始位置 x 坐标,取值范围:[0, Page_Width-1]
* @param y 定义文本起始位置 y 坐标,取值范围:[0, Page_Height-1]
* @param font 选择字体,可以使用 24。带矢量字机型支持 16,[20,99]。
* @param style 字符风格。
* @param str 要打印的字符串
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Label_DrawText(Pointer handle, int x, int y, int font, int style, String str);
/**
* 在标签页面上指定位置绘制文本。只能单行打印。
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param x 定义文本起始位置 x 坐标,取值范围:[0, Page_Width-1]
* @param y 定义文本起始位置 y 坐标,取值范围:[0, Page_Height-1]
* @param font 选择字体,可以使用 24。带矢量字机型支持 16,[20,99]。
* @param style 字符风格。
* @param str 要打印的字符串
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
* 该函数会将数据转为 UTF8 编码发送。
*/
boolean CP_Label_DrawTextInUTF8(Pointer handle, int x, int y, int font, int style, WString str);
/**
* 在标签页面上指定位置绘制文本。只能单行打印。
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param x 定义文本起始位置 x 坐标,取值范围:[0, Page_Width-1]
* @param y 定义文本起始位置 y 坐标,取值范围:[0, Page_Height-1]
* @param font 选择字体,可以使用 24。带矢量字机型支持 16,[20,99]。
* @param style 字符风格。
* @param str 要打印的字符串
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
* 该函数会将数据转为 GBK 编码发送。
*/
boolean CP_Label_DrawTextInGBK(Pointer handle, int x, int y, int font, int style, WString str);
/**
* 在标签页指定位置绘制一维条码。
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param x 条码左上角 x 坐标值,取值范围:[0, Page_Width-1]。
* @param y 条码左上角 y 坐标值,取值范围:[0, Page_Height-1]。
* @param nBarcodeType 标识条码类型
* @param nBarcodeTextPrintPosition 条码可读字符位置,取值范围:[0, 3]。
* @param height 定义条码高度。
* @param unitwidth 定义码块单元宽度。取值范围:[1, 4]。
* @param rotation 表示旋转角度。取值范围:[0, 3]。
* @param str 要打印的条码
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Label_DrawBarcode(Pointer handle, int x, int y, int nBarcodeType, int nBarcodeTextPrintPosition, int height, int unitwidth, int rotation, String str);
/**
* 在标签页指定位置绘制 QR 码。
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param x 左上角 x 坐标值,取值范围:[0Page_Width-1]。
* @param y 左上角 y 坐标值,取值范围:[0, Page_Height-1]。
* @param nVersion 指定字符版本。取值范围:[0,16]。
* @param nECCLevel 指定纠错等级。取值范围:[1, 4]。
* @param unitwidth 定义码块单元宽度。取值范围:[1, 4]。
* @param rotation 表示旋转角度。取值范围:[0, 3]。
* @param str 要打印的 QR 码
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Label_DrawQRCode(Pointer handle, int x, int y, int nVersion, int nECCLevel, int unitwidth, int rotation, String str);
/**
* 在标签页指定位置绘制 PDF417 条码
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param x 左上角 x 坐标值,取值范围:[0, Page_Width-1]。
* @param y 左上角 y 坐标值,取值范围:[0, Page_Height-1]。
* @param column ColNum 为列数,表述每行容纳多少码字。
* @param nAspectRatio 指定纵横比。
* @param nECCLevel 指定纠错等级。取值范围:[0, 8]。
* @param unitwidth 定义码块单元宽度。取值范围:[1, 3]。
* @param rotation 表示旋转角度。取值范围:[0, 3]。
* @param str 要打印的 PDF417 码
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Label_DrawPDF417Code(Pointer handle, int x, int y, int column, int nAspectRatio, int nECCLevel, int unitwidth, int rotation, String str);
/**
* 在标签页指定位置绘制位图
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param x 左上角 x 坐标值,取值范围:[0, Page_Width-1]。
* @param y 左上角 y 坐标值,取值范围:[0, Page_Height-1]。
* @param dstw 要打印的宽度
* @param dsth 要打印的高度
* @param pszFile 图片的路径
* @param binaryzation_method 图片二值化算法。
* @param compression_method 最终打印数据的压缩方式。
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Label_DrawImageFromFile(Pointer handle, int x, int y, int dstw, int dsth, String pszFile, int binaryzation_method, int compression_method);
/**
* 在标签页指定位置绘制位图
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param x 左上角 x 坐标值,取值范围:[0, Page_Width-1]。
* @param y 左上角 y 坐标值,取值范围:[0, Page_Height-1]。
* @param dstw 要打印的宽度
* @param dsth 要打印的高度
* @param data 图片数据。
* @param data_size 图片数据长度
* @param binaryzation_method 图片二值化算法。
* @param compression_method 最终打印数据的压缩方式。
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Label_DrawImageFromData(Pointer handle, int x, int y, int dstw, int dsth, byte[] data, int data_size, int binaryzation_method, int compression_method);
/**
* 在标签页指定位置绘制位图
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param x 左上角 x 坐标值,取值范围:[0, Page_Width-1]。
* @param y 左上角 y 坐标值,取值范围:[0, Page_Height-1]。
* @param img_data 图片的像素数据。
* @param img_datalen 图片的像素数据字节数。
* @param img_width 图片的像素宽度。
* @param img_height 图片的像素高度。
* @param img_stride 图片水平跨度。表示每行字节数。
* @param binaryzation_method 图片二值化算法。
* @param compression_method 最终打印数据的压缩方式。
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Label_DrawImageFromPixels(Pointer handle, int x, int y, byte[] img_data, int img_datalen, int img_width, int img_height, int img_stride, int binaryzation_method, int compression_method);
/**
* 在标签页指定位置绘制线段
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param startx 直线段起始点 x 坐标值,取值范围:[0, Page_Width-1]。
* @param starty 直线段起始点 y 坐标值,取值范围:[0Page_Height-1]。
* @param endx 直线段终止点 x 坐标值,取值范围:[0, Page_Width-1]。
* @param endy 直线段终止点 y 坐标值,取值范围:[0,Page_Height-1]。
* @param linewidth 直线段线宽,取值范围:[1Page_Height-1]。
* @param linecolor 直线段颜色线条颜色0 是白色1 是黑色
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Label_DrawLine(Pointer handle, int startx, int starty, int endx, int endy, int linewidth, int linecolor);
/**
* 在标签页指定位置绘制矩形
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param x 横向坐标
* @param y 纵向坐标
* @param width 矩形宽度
* @param height 矩形高度
* @param color 矩形颜色0 是白色1 是黑色
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Label_DrawRect(Pointer handle, int x, int y, int width, int height, int color);
/**
* 在标签页指定位置绘制矩形框
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param x 横向坐标
* @param y 纵向坐标
* @param width 矩形框宽度
* @param height 矩形框高度
* @param borderwidth 矩形框边框宽度
* @param bordercolor 矩形框边框颜色0 是白色1 是黑色
* @return 返回值仅指示指令是否写入成功。返回 true 表示写入成功,返回 false 表示写入失败。
*/
boolean CP_Label_DrawBox(Pointer handle, int x, int y, int width, int height, int borderwidth, int bordercolor);
/**
* 查询电池电量
* 仅部分带电池的机型支持该指令
*
* @param handle 端口句柄,由 OpenXXX 返回
* @param timeout 超时毫秒时间。查询等待时间不超过此时间。
* @return 返回电池电量,范围在 0-100 之间。返回 -1 表示查询失败。
*/
int CP_Proto_QueryBatteryLevel(Pointer handle, int timeout);
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";
// }
// 统一采用win32的autoreplyprint.dll文件
return "autoreplyprint.dll";
}
}
}