package com.mes.print.tsc; import com.sun.jna.Library; import com.sun.jna.Native; /** * TSC 打印机 DLL 接口 * 基于 TSCLIB.dll 的 JNA 封装 */ public interface TSCLIB extends Library { // 加载 DLL TSCLIB INSTANCE = (TSCLIB) Native.load("TSCLIB", TSCLIB.class); // ========== 基本控制函数 ========== /** * 打开打印机端口 * @param pirnterName 打印机名称(如 "TSC TTP-244 PRO") * @return 成功返回 1,失败返回 0 */ int openport(String pirnterName); /** * 关闭打印机端口 */ int closeport(); /** * 设置打印机参数 * @param width 标签宽度(单位:mm) * @param height 标签高度(单位:mm) * @param speed 打印速度(1-15) * @param density 打印浓度(0-15) * @param sensor 传感器类型(0=垂直间距传感器, 1=间隙传感器) * @param vertical 垂直间距高度(单位:mm,仅 sensor=0 时有效) * @param offset 标签偏移量(单位:mm) */ int setup(String width, String height, String speed, String density, String sensor, String vertical, String offset); /** * 清除打印缓冲区 */ int clearbuffer(); /** * 校准打印机(自动检测标签间隙) */ int calibrate(); /** * 打印标签 * @param sets 打印份数 * @param copys 每份打印的标签数 */ int printlabel(String sets, String copys); // ========== 文本函数 ========== /** * 打印文本 * @param x X坐标(单位:dot) * @param y Y坐标(单位:dot) * @param font 字体名称(如 "TSS24.BF2", "1", "2"...) * @param rotation 旋转角度(0, 90, 180, 270) * @param x_multiplication X方向放大倍数(1-10) * @param y_multiplication Y方向放大倍数(1-10) * @param text 文本内容 */ int windowsfont(int x, int y, int fontheight, int rotation, int fontstyle, int fontunderline, String szFaceName, String content); /** * 打印条形码(简化版) */ int barcode(String x, String y, String type, String height, String readable, String rotation, String narrow, String wide, String code); // ========== 条码/二维码函数 ========== /** * 打印一维条码 * @param x X坐标 * @param y Y坐标 * @param type 条码类型("128", "EAN13", "CODE39"等) * @param height 条码高度(单位:dot) * @param readable 是否显示可读文字(0=不显示, 1=显示) * @param rotation 旋转角度(0, 90, 180, 270) * @param narrow 窄条宽度(单位:dot) * @param wide 宽条宽度(单位:dot) * @param code 条码内容 */ int barcode128(String x, String y, String height, String readable, String rotation, String narrow, String code); /** * 打印 QR Code 二维码 * @param x X坐标 * @param y Y坐标 * @param eccLevel 纠错等级("L", "M", "Q", "H") * @param cellWidth 单元宽度(1-10) * @param mode 模式("A"=自动, "M"=手动) * @param rotation 旋转角度(0, 90, 180, 270) * @param code 二维码内容 */ int qrcode(String x, String y, String eccLevel, String cellWidth, String mode, String rotation, String code); /** * 发送原始命令到打印机 * @param command TSPL 命令字符串 */ int sendcommand(String command); }