[img]http://dl.iteye.com/upload/attachment/0076/8465/9b0e8b8f-3e37-326c-b453-17961ce8807f.png[/img]
打印机型号BTP-2100E,可打印二维码标签,效果如附件,将打印机的驱动bpladll.dll、ByUSBInt.dll和jnative的dll放到system32下面,项目导入jnative的jar包,使用USB接口
import org.xvolks.jnative.JNative;
import org.xvolks.jnative.Type;
import org.xvolks.jnative.exceptions.NativeException;
public class CopyOfDemo {
private static final String PRINTER_DLL = "bpladll.dll";
public static void main(String[] args) {
Demo demo = new Demo();
System.loadLibrary("bpladll");
JNative n = null;
try {
// 打开端口
n = demo.getJNativeByFunction("BPLA_OpenUsb");
n.setRetVal(Type.INT);
n.setParameter(0, Type.INT, "1");
n.invoke();
System.out.println(n.getRetVal() + ":BPLA_OpenUsb");
n = demo.getJNativeByFunction("BPLA_SetEnd");
n.setRetVal(Type.INT);
n.setParameter(0, Type.INT, "70");
n.invoke();
System.out.println(n.getRetVal() + ":BPLA_SetEnd");
n = demo.getJNativeByFunction("BPLA_Reset");
n.setRetVal(Type.INT);
n.invoke();
System.out.println(n.getRetVal() + ":BPLA_Reset");
n = demo.getJNativeByFunction("BPLA_StartArea");
n.setRetVal(Type.INT);
n.setParameter(0, Type.INT, "0");
n.setParameter(1, Type.INT, "500");
n.setParameter(2, Type.INT, "10");
n.setParameter(3, Type.INT, "10");
n.setParameter(4, Type.INT, "0");
n.setParameter(5, Type.INT, "0");
n.setParameter(6, Type.INT, "0");
n.setParameter(7, Type.INT, "0");
n.invoke();
System.out.println(n.getRetVal() + ":BPLA_StartArea");
n = demo.getJNativeByFunction("BPLA_PrintTruetype");
n.setRetVal(Type.INT);
n.setParameter(0, Type.STRING, "南京咸水鸭");
n.setParameter(1, Type.INT, "4");
n.setParameter(2, Type.INT, "210");
n.setParameter(3, Type.STRING, "微软雅黑体");
n.setParameter(4, Type.INT, "30");
n.setParameter(5, Type.INT, "0");
n.invoke();
System.out.println(n.getRetVal() + ":BPLA_PrintTruetype");
n = demo.getJNativeByFunction("BPLA_PrintTruetype");
n.setRetVal(Type.INT);
n.setParameter(0, Type.STRING, "价格(元):35");
n.setParameter(1, Type.INT, "4");
n.setParameter(2, Type.INT, "180");
n.setParameter(3, Type.STRING, "微软雅黑体");
n.setParameter(4, Type.INT, "20");
n.setParameter(5, Type.INT, "0");
n.invoke();
System.out.println(n.getRetVal() + ":BPLA_PrintTruetype");
n = demo.getJNativeByFunction("BPLA_PrintTruetype");
n.setRetVal(Type.INT);
n.setParameter(0, Type.STRING, "净重(千克):2.6");
n.setParameter(1, Type.INT, "4");
n.setParameter(2, Type.INT, "150");
n.setParameter(3, Type.STRING, "微软雅黑体");
n.setParameter(4, Type.INT, "20");
n.setParameter(5, Type.INT, "0");
n.invoke();
System.out.println(n.getRetVal() + ":BPLA_PrintTruetype");
n = demo.getJNativeByFunction("BPLA_PrintTruetype");
n.setRetVal(Type.INT);
n.setParameter(0, Type.STRING, "单价(元/千克):15");
n.setParameter(1, Type.INT, "4");
n.setParameter(2, Type.INT, "120");
n.setParameter(3, Type.STRING, "微软雅黑体");
n.setParameter(4, Type.INT, "20");
n.setParameter(5, Type.INT, "0");
n.invoke();
System.out.println(n.getRetVal() + ":BPLA_PrintTruetype");
n = demo.getJNativeByFunction("BPLA_PrintTruetype");
n.setRetVal(Type.INT);
n.setParameter(0, Type.STRING, "生产日期:12.11.20");
n.setParameter(1, Type.INT, "4");
n.setParameter(2, Type.INT, "90");
n.setParameter(3, Type.STRING, "微软雅黑体");
n.setParameter(4, Type.INT, "20");
n.setParameter(5, Type.INT, "0");
n.invoke();
System.out.println(n.getRetVal() + ":BPLA_PrintTruetype");
n = demo.getJNativeByFunction("BPLA_PrintTruetype");
n.setRetVal(Type.INT);
n.setParameter(0, Type.STRING, "保质日期:12.12.08");
n.setParameter(1, Type.INT, "4");
n.setParameter(2, Type.INT, "60");
n.setParameter(3, Type.STRING, "微软雅黑体");
n.setParameter(4, Type.INT, "20");
n.setParameter(5, Type.INT, "0");
n.invoke();
System.out.println(n.getRetVal() + ":BPLA_PrintTruetype");
n = demo.getJNativeByFunction("BPLA_PrintTruetype");
n.setRetVal(Type.INT);
n.setParameter(0, Type.STRING, "沃尔玛购物广场");
n.setParameter(1, Type.INT, "4");
n.setParameter(2, Type.INT, "30");
n.setParameter(3, Type.STRING, "微软雅黑体");
n.setParameter(4, Type.INT, "20");
n.setParameter(5, Type.INT, "0");
n.invoke();
System.out.println(n.getRetVal() + ":BPLA_PrintTruetype");
n = demo.getJNativeByFunction("BPLA_PrintQR");
n.setRetVal(Type.INT);
n.setParameter(0, Type.STRING, "QA,123698547896325874125896325");
n.setParameter(1, Type.INT, "260");
n.setParameter(2, Type.INT, "70");
n.setParameter(3, Type.INT, "7");
n.setParameter(4, Type.INT, "2");//使用1 扫描枪能扫出结果 使用2手机能扫出结果
n.setParameter(5, Type.INT, "0");
n.setParameter(6, Type.INT, "27");
n.invoke();
System.out.println(n.getRetVal() + ":BPLA_PrintQR");
n = demo.getJNativeByFunction("BPLA_PrintTruetype");
n.setRetVal(Type.INT);
n.setParameter(0, Type.STRING, "xxoo公司");
n.setParameter(1, Type.INT, "260");
n.setParameter(2, Type.INT, "30");
n.setParameter(3, Type.STRING, "微软雅黑体");
n.setParameter(4, Type.INT, "20");
n.setParameter(5, Type.INT, "0");
n.invoke();
n = demo.getJNativeByFunction("BPLA_Print");
n.setRetVal(Type.INT);
n.setParameter(0, Type.INT, "1");
n.setParameter(1, Type.INT, "0");
n.setParameter(2, Type.INT, "1");
n.invoke();
System.out.println(n.getRetVal() + ":BPLA_Print");
n = demo.getJNativeByFunction("BPLA_CloseUsb");
n.setRetVal(Type.INT);
n.invoke();
System.out.println(n.getRetVal() + ":BPLA_CloseUsb");
} catch (Exception e) {
e.printStackTrace();
} finally {
if (n != null) {
try {
n.dispose();
} catch (NativeException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
}
// 通过方法名取得JNative对象
public JNative getJNativeByFunction(String functionName) throws NativeException {
return new JNative(PRINTER_DLL, functionName);
}
}