在实际开发中我们使用条形码打印机打印条形码,这里介绍下使用动态链接库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 list=new ArrayList(); 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.使用条形码打印机打印条形码不需要生成条形码以图片的形式,然后再用打印方法以打印图片形式打印出来,然后用扫码枪扫描,这样做使得生成的条形码打印出来大小与原来大小不一致,而且有时扫码枪扫描不出来。用相应的条形码打印机驱动,动态链接库则避免了这些问题,而且打印出来的条形码用扫码枪扫描反应很快,中文特殊符号均能正常扫描。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。