java使用佳博打印机打印条形码

来源:互联网 发布:n卡负优化 编辑:程序博客网 时间:2024/04/27 19:40

转载:点击打开链接

在实际开发中我们使用条形码打印机打印条形码,这里介绍下使用动态链接库TSClib.dll编辑方式打印条形码,还有js实现方式,这里不进行介绍,会给相关的demo

准备工作:

1.佳博打印机,如佳博GP-1124D

详细参数如下:

主要参数     
    产品类型:桌面打印机
    分辨率: 203dpi
    打印方式: 热敏式
    打印速度: 4-8英寸/秒
    最大打印宽度: 104mm
    最大打印长度: 2286mm
    通信接口: USB接口,串口,并口
介质规格     
    介质类型: 连续纸,间隙纸,折叠纸,黑标纸
    介质宽度: 20-120mm
    介质厚度: 0.06-0.254mm
    最大外径: 130mm
其它参数     
    产品尺寸: 239×180×175mm
    产品重量: 2.09kg
    电源电压: 输入:AC 110-220V
                     输出:DC 24V,2.5A
    电源功率: 60W
    环境参数: 工作温度:5-45℃,工作湿度:25-85%RH(不结露)
                     存储温度:-10-50℃,存储湿度:10-90%RH(不结露)
    可选附件: 可选外置支架
    其它特点: 脉冲激发:1x108pulses
                     热敏片(耐磨性):50km
                     纸张缠绕形式:打印面外卷式

外形:


2.佳博打印机驱动安装,如:



3.动态链接库TSCLIB.dll,支持大部分佳博打印机,和其他品牌的TSC系列的打印机,讲动态链接库"TSCLIB.dll"复制到该路径下:

5.条形码扫描器:暴享(BAOX)BX-W988

详细参数:


6.案例:

[java] view plain copy
  1. package jbarcode;  
  2.   
  3. import java.io.UnsupportedEncodingException;  
  4. import java.util.ArrayList;  
  5. import java.util.List;  
  6. import com.sun.jna.Library;  
  7. import com.sun.jna.Native;  
  8.   
  9. /** 
  10.  * @class:PrintBarcodeUtil  
  11.  *@descript:java使用编程接口打印条形码 
  12.  *@date:2016年12月8日 下午2:02:50 
  13.  *@version:V1.0 
  14.  */  
  15. public class PrintBarcodeUtil {  
  16.      //加载库文件  
  17.      private static final String LOAD_LIBRARY="TSCLIB";  
  18.      //打印机型号  
  19.      private static final String print_model="Gprinter  GP-1124D";  
  20.       
  21.      /** 
  22.      * @class:TscLibDll  
  23.      *@descript:创建TSCLIB.dll编程接口 
  24.      *动态链接库TSCLIB.dll,支持大部分佳博打印机,和其他品牌的TSC系列的打印机 
  25.      *@date:2016年12月8日 下午2:03:55 
  26.      *@version:V1.0 
  27.      */  
  28.      public interface TscLibDll extends Library {  
  29.         TscLibDll INSTANCE = (TscLibDll) Native.loadLibrary ("TSCLIB", TscLibDll.class);  
  30.         int about ();  
  31.         int openport (String pirnterName);  
  32.         int closeport ();  
  33.         int sendcommand (String printerCommand);  
  34.         int setup (String width,String height,String speed,String density,String sensor,String vertical,String offset);  
  35.         int downloadpcx (String filename,String image_name);  
  36.         int barcode (String x,String y,String type,String height,String readable,String rotation,String narrow,String wide,String code);  
  37.         int printerfont (String x,String y,String fonttype,String rotation,String xmul,String ymul,String text);  
  38.         int clearbuffer ();  
  39.         int printlabel (String set, String copy);  
  40.         int formfeed ();  
  41.         int nobackfeed ();  
  42.         int windowsfont (int x, int y, int fontheight, int rotation, int fontstyle, int fontunderline, String szFaceName, String content);  
  43.     }  
  44.       
  45.     public static void printBarcode(String message,String text){  
  46.           //加载驱动  
  47.         System.loadLibrary(LOAD_LIBRARY);  
  48.         //解决中文乱码  
  49.         System.setProperty("jna.encoding""GBK");   
  50.         //TscLibDll.INSTANCE.about();  
  51.         TscLibDll.INSTANCE.openport(print_model);  
  52.         //TscLibDll.INSTANCE.downloadpcx("C:\\UL.PCX", "UL.PCX");  
  53.         //TscLibDll.INSTANCE.sendcommand("REM ***** This is a test by JAVA. *****");  
  54.         TscLibDll.INSTANCE.setup("100""60""5""8""0""0""0");  
  55.         TscLibDll.INSTANCE.clearbuffer();  
  56.         TscLibDll.INSTANCE.printerfont ("150""270""TSS24.BF2""0""1""1", text);  
  57.         TscLibDll.INSTANCE.barcode("150""90""128""150""1""0""2""2", message);  
  58.          //TscLibDll.INSTANCE.windowsfont(400, 200, 48, 0, 3, 1, "arial", "DEG 0");  
  59.         TscLibDll.INSTANCE.printlabel("1""1");  
  60.         TscLibDll.INSTANCE.closeport();  
  61.      }  
  62.       
  63.      //测试  
  64.      public static void main(String[] args) throws UnsupportedEncodingException {  
  65.      List<String> list=new ArrayList<String>();    
  66.          list.add("KJ4.1-0127-0001(001)");    
  67.          list.add("KJ4.1-0128-0001(001)");    
  68.          list.add("KJ4.1-0129-0001(001)");    
  69.          list.add("KJ4.1-0130-0001(001)");    
  70.          if(list!=null && list.size()>0){    
  71.              for(String message:list){    
  72.                  printBarcode(message,"苏交科");  
  73.              }    
  74.          }   
  75.          System.out.println("打印成功");  
  76.     }  
  77. }  

打印效果图:



备注:

1.该案例是条形码是code128,用扫码枪扫描能快速识别扫描,特殊符号汉字均能正常扫描

2.根据不同的条形码打印机会有不同的动态链接库,如佳博使用的是TSCLIB.dll,博思得"CDFPSK_u.dll"等等。这些都是根据对应条形码打印机官网下载驱动

3.上述案例中方法printBarcode()里面的写法是根据动态链接库"TSCLIB.dll"语法规则,具体详细查看TSCLIB.DLL 函数库使用说明

下载地址:http://download.csdn.net/detail/u014079773/9705736


4.使用条形码打印机打印条形码不需要生成条形码以图片的形式,然后再用打印方法以打印图片形式打印出来,然后用扫码枪扫描,这样做使得生成的条形码打印出来大小与原来大小不一致,而且有时扫码枪扫描不出来。用相应的条形码打印机驱动,动态链接库则避免了这些问题,而且打印出来的条形码用扫码枪扫描反应很快,中文特殊符号均能正常扫描。