TSCLIB.java 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. package com.mes.print.tsc;
  2. import com.sun.jna.Library;
  3. import com.sun.jna.Native;
  4. /**
  5. * TSC 打印机 DLL 接口
  6. * 基于 TSCLIB.dll 的 JNA 封装
  7. */
  8. public interface TSCLIB extends Library {
  9. // 加载 DLL
  10. TSCLIB INSTANCE = (TSCLIB) Native.load("TSCLIB", TSCLIB.class);
  11. // ========== 基本控制函数 ==========
  12. /**
  13. * 打开打印机端口
  14. * @param pirnterName 打印机名称(如 "TSC TTP-244 PRO")
  15. * @return 成功返回 1,失败返回 0
  16. */
  17. int openport(String pirnterName);
  18. /**
  19. * 关闭打印机端口
  20. */
  21. int closeport();
  22. /**
  23. * 设置打印机参数
  24. * @param width 标签宽度(单位:mm)
  25. * @param height 标签高度(单位:mm)
  26. * @param speed 打印速度(1-15)
  27. * @param density 打印浓度(0-15)
  28. * @param sensor 传感器类型(0=垂直间距传感器, 1=间隙传感器)
  29. * @param vertical 垂直间距高度(单位:mm,仅 sensor=0 时有效)
  30. * @param offset 标签偏移量(单位:mm)
  31. */
  32. int setup(String width, String height, String speed, String density,
  33. String sensor, String vertical, String offset);
  34. /**
  35. * 清除打印缓冲区
  36. */
  37. int clearbuffer();
  38. /**
  39. * 校准打印机(自动检测标签间隙)
  40. */
  41. int calibrate();
  42. /**
  43. * 打印标签
  44. * @param sets 打印份数
  45. * @param copys 每份打印的标签数
  46. */
  47. int printlabel(String sets, String copys);
  48. // ========== 文本函数 ==========
  49. /**
  50. * 打印文本
  51. * @param x X坐标(单位:dot)
  52. * @param y Y坐标(单位:dot)
  53. * @param font 字体名称(如 "TSS24.BF2", "1", "2"...)
  54. * @param rotation 旋转角度(0, 90, 180, 270)
  55. * @param x_multiplication X方向放大倍数(1-10)
  56. * @param y_multiplication Y方向放大倍数(1-10)
  57. * @param text 文本内容
  58. */
  59. int windowsfont(int x, int y, int fontheight, int rotation,
  60. int fontstyle, int fontunderline, String szFaceName, String content);
  61. /**
  62. * 打印条形码(简化版)
  63. */
  64. int barcode(String x, String y, String type, String height,
  65. String readable, String rotation, String narrow, String wide, String code);
  66. // ========== 条码/二维码函数 ==========
  67. /**
  68. * 打印一维条码
  69. * @param x X坐标
  70. * @param y Y坐标
  71. * @param type 条码类型("128", "EAN13", "CODE39"等)
  72. * @param height 条码高度(单位:dot)
  73. * @param readable 是否显示可读文字(0=不显示, 1=显示)
  74. * @param rotation 旋转角度(0, 90, 180, 270)
  75. * @param narrow 窄条宽度(单位:dot)
  76. * @param wide 宽条宽度(单位:dot)
  77. * @param code 条码内容
  78. */
  79. int barcode128(String x, String y, String height, String readable,
  80. String rotation, String narrow, String code);
  81. /**
  82. * 打印 QR Code 二维码
  83. * @param x X坐标
  84. * @param y Y坐标
  85. * @param eccLevel 纠错等级("L", "M", "Q", "H")
  86. * @param cellWidth 单元宽度(1-10)
  87. * @param mode 模式("A"=自动, "M"=手动)
  88. * @param rotation 旋转角度(0, 90, 180, 270)
  89. * @param code 二维码内容
  90. */
  91. int qrcode(String x, String y, String eccLevel, String cellWidth,
  92. String mode, String rotation, String code);
  93. /**
  94. * 发送原始命令到打印机
  95. * @param command TSPL 命令字符串
  96. */
  97. int sendcommand(String command);
  98. }