这是一段JAVA调用TSC条码打印机的代码;有详细的注释!
1,需要把dll文件拷贝到c:\windows\system32目录下
2,工程里面需要加载JNative.jar包(网上很多下载的)
/*******************************************************************************
* $Header$
* $Revision$
* $Date$
*
*==============================================================================
*
* Copyright (c) 2001-2006 Primeton Technologies, Ltd.
* All rights reserved.
*
* Created on 2011-11-30 Dicky Penghuaibing
*******************************************************************************/
package com.sie.barcode;
import org.xvolks.jnative.JNative;
import org.xvolks.jnative.exceptions.NativeException;
public class BarcodeTest {
/**
* @param args
*/
public static void main(String[] args)throws NativeException, IllegalAccessException {
BarcodeTest.barcode_print("BAR03743902");
}
//打印方法,传入需要打印的条码参数
public static void barcode_print(String barcode_str)throws NativeException, IllegalAccessException {
// TODO Auto-generated method stub
//系统加载dll文件有两种写法1.loadLibrary方法:把dll文件拷贝到c:\windows\system32目录下,引用时只需写dll名字2.load方法:写dll文件的完整路径
System.loadLibrary("TSCLIB");//TSCLIB是TES打印机的dll文件
//参数说明InterfaceFun dll名,AddZhiYe函数名
JNative openport = new JNative("TSCLIB","openport");
//openport.setRetVal(Type.STRING);
openport.setParameter(0,"TSC TTP-342 Pro");
//函数执行
openport.invoke();
int i=0;
/*setup(a,b,c,d,e,f,g)
说明: 设定卷标的宽度、高度、打印速度、打印浓度、感应器类别、gap/black mark 垂直间距、gap/black mark 偏移距离)
参数:
a: 字符串型别,设定卷标宽度,单位 mm
b: 字符串型别,设定卷标高度,单位 mm
c: 字符串型别,设定打印速度,(打印速度随机型不同而有不同的选项)
1.0: 每秒1.0吋打印速度
1.5: 每秒1.5吋打印速度
2.0: 每秒2.0吋打印速度
3.0: 每秒3.0吋打印速度
4.0: 每秒4.0吋打印速度
5.0: 每秒5.0吋打印速度
6.0: 每秒6.0吋打印速度
d: 字符串型别,设定打印浓度,
0~15,数字愈大打印结果愈黑
e: 字符串型别,设定使用感应器类别
0 表示使用垂直间距传感器(gap sensor)
1 表示使用黑标传感器(black mark sensor)
f: 字符串型别,设定gap/black mark 垂直间距高度,单位: mm
g: 字符串型别,设定gap/black mark 偏移距离,单位: mm,此参数若使用一般卷标时均设为0
* */
JNative setup = new JNative("TSCLIB","setup");
setup.setParameter(i++,"50");
setup.setParameter(i++,"25");
setup.setParameter(i++,"3");
setup.setParameter(i++,"5");
setup.setParameter(i++,"5");
setup.setParameter(i++,"0");
setup.setParameter(i++,"5");
setup.setParameter(i++,"0");
setup.invoke();
/*使用条形码机内建条形码打印
* 5. barcode(a,b,c,d,e,f,g,h,I)
说明: 使用条形码机内建条形码打印
参数:
a: 字符串型别,条形码X方向起始点,以点(point)表示。
(200 DPI,1点=1/8 mm, 300 DPI,1点=1/12 mm)
b: 字符串型别,条形码Y方向起始点,以点(point)表示。
(200 DPI,1点=1/8 mm, 300 DPI,1点=1/12 mm)
c: 字符串型别,
128 Code 128, switching code subset A, B, C
automatically
128M Code 128, switching code subset A, B, C
manually.
EAN128 Code 128, switching code subset A, B, C
automatically
25 Interleaved 2 of 5
25C Interleaved 2 of 5 with check digits
39 Code 39
39C Code 39 with check digits
93 Code 93
EAN13 EAN 13
EAN13+2 EAN 13 with 2 digits add-on
EAN13+5 EAN 13 with 5 digits add-on
EAN8 EAN 8
EAN8+2 EAN 8 with 2 digits add-on
EAN8+5 EAN 8 with 5 digits add-on
CODA Codabar
POST Postnet
UPCA UPC-A
UPCA+2 UPC-A with 2 digits add-on
UPCA+5 UPC-A with 5 digits add-on
UPCE UPC-E
UPCE+2 UPC-E with 2 digits add-on
UPCE+5 UPC-E with 5 digits add-on
d: 字符串型别,设定条形码高度,高度以点来表示
e: 字符串型别,设定是否打印条形码码文
0: 不打印码文
1: 打印码文
f: 字符串型别,设定条形码旋转角度
0: 旋转0度
90: 旋转90度
180: 旋转180度
270: 旋转270度
g: 字符串型别,设定条形码窄bar 比例因子,请参考TSPL使用手册
h: 字符串型别,设定条形码窄bar 比例因子,请参考TSPL使用手册
I: 字符串型别,条形码内容
*/
i =0;
JNative barcode = new JNative("TSCLIB","barcode");
barcode.setParameter(i++,"40");
barcode.setParameter(i++,"80");
barcode.setParameter(i++,"39");
barcode.setParameter(i++,"88");
barcode.setParameter(i++,"1");
barcode.setParameter(i++,"0");
barcode.setParameter(i++,"2");
barcode.setParameter(i++,"4");
barcode.setParameter(i++,barcode_str);
barcode.invoke();
/*7. sendcommand(command)
说明: 送内建指令到条形码打印机
参数: 详细指令请参考TSPL
*/
JNative sendcommand = new JNative("TSCLIB","sendcommand");
sendcommand.setParameter(0,"BAR 400,200,300,100");
sendcommand.invoke();
/*8. printlabel(a,b)
说明: 打印卷标内容
参数:
a: 字符串型别,设定打印卷标式数(set)
b: 字符串型别,设定打印卷标份数(copy)
*/
JNative printlabel = new JNative("TSCLIB","printlabel");
printlabel.setParameter(0,"1");
printlabel.setParameter(1,"1");
printlabel.invoke();
//清除
JNative clearbuffer = new JNative("TSCLIB","clearbuffer");
clearbuffer.invoke();
//关闭
JNative closeport = new JNative("TSCLIB","closeport");
closeport.invoke();
}
}