[img]/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); } }