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

在实际开发中我们使用条形码打印机打印条形码,这里介绍下使用动态链接库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.案例:

package jbarcode;

import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import com.sun.jna.Library;
import com.sun.jna.Native;

/**
 * @class:PrintBarcodeUtil 
 *@descript:java使用编程接口打印条形码
 *@date:2016年12月8日 下午2:02:50
 *@version:V1.0
 */
public class PrintBarcodeUtil {
     //加载库文件
     private static final String LOAD_LIBRARY="TSCLIB";
     //打印机型号
     private static final String print_model="Gprinter  GP-1124D";
	
     /**
	 * @class:TscLibDll 
	 *@descript:创建TSCLIB.dll编程接口
	 *动态链接库TSCLIB.dll,支持大部分佳博打印机,和其他品牌的TSC系列的打印机
	 *@date:2016年12月8日 下午2:03:55
	 *@version:V1.0
	 */
	 public interface TscLibDll extends Library {
        TscLibDll INSTANCE = (TscLibDll) Native.loadLibrary ("TSCLIB", TscLibDll.class);
        int about ();
        int openport (String pirnterName);
        int closeport ();
        int sendcommand (String printerCommand);
        int setup (String width,String height,String speed,String density,String sensor,String vertical,String offset);
        int downloadpcx (String filename,String image_name);
        int barcode (String x,String y,String type,String height,String readable,String rotation,String narrow,String wide,String code);
        int printerfont (String x,String y,String fonttype,String rotation,String xmul,String ymul,String text);
        int clearbuffer ();
        int printlabel (String set, String copy);
        int formfeed ();
        int nobackfeed ();
        int windowsfont (int x, int y, int fontheight, int rotation, int fontstyle, int fontunderline, String szFaceName, String content);
	}
	
	public static void printBarcode(String message,String text){
	      //加载驱动
        System.loadLibrary(LOAD_LIBRARY);
        //解决中文乱码
        System.setProperty("jna.encoding", "GBK"); 
        //TscLibDll.INSTANCE.about();
        TscLibDll.INSTANCE.openport(print_model);
        //TscLibDll.INSTANCE.downloadpcx("C:\\UL.PCX", "UL.PCX");
        //TscLibDll.INSTANCE.sendcommand("REM ***** This is a test by JAVA. *****");
        TscLibDll.INSTANCE.setup("100", "60", "5", "8", "0", "0", "0");
        TscLibDll.INSTANCE.clearbuffer();
        TscLibDll.INSTANCE.printerfont ("150", "270", "TSS24.BF2", "0", "1", "1", text);
        TscLibDll.INSTANCE.barcode("150", "90", "128", "150", "1", "0", "2", "2", message);
         //TscLibDll.INSTANCE.windowsfont(400, 200, 48, 0, 3, 1, "arial", "DEG 0");
        TscLibDll.INSTANCE.printlabel("1", "1");
        TscLibDll.INSTANCE.closeport();
	 }
	
	 //测试
	 public static void main(String[] args) throws UnsupportedEncodingException {
	 List<String> list=new ArrayList<String>();  
         list.add("KJ4.1-0127-0001(001)");  
         list.add("KJ4.1-0128-0001(001)");  
         list.add("KJ4.1-0129-0001(001)");  
         list.add("KJ4.1-0130-0001(001)");  
         if(list!=null && list.size()>0){  
             for(String message:list){  
            	 printBarcode(message,"苏交科");
             }  
         } 
         System.out.println("打印成功");
	}
}

打印效果图:



备注:

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

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

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

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


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




  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值