java调用DLL,调用北洋打印机打印二维码标签

628 阅读2分钟

调用dll,通过北洋打印机打印二维码标签

package com.ian.das.controller;

import java.util.List;

import org.xvolks.jnative.JNative
import org.xvolks.jnative.Type
import org.xvolks.jnative.exceptions.NativeException;

import com.ian.das.model.Asset;
import com.ian.das.util.StringUtil;

public class CopyOfDemo { 

private static final String PRINTER_DLL = "bpladll.dll"



public void print(List<Asset> list)
{



CopyOfDemo demo = new CopyOfDemo()
System.loadLibrary("bpladll")
System.loadLibrary("LabelUSBPrintDll");
System.loadLibrary("ByUSBInt");
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")

for(int i=0;i<list.size();i++)
{
String ms="";
n = demo.getJNativeByFunction("BPLA_Set")
n.setRetVal(Type.INT)
n.setParameter(0, Type.INT, "2")
n.setParameter(1, Type.INT, "0")
n.setParameter(2, Type.INT, "0");
n.invoke()
System.out.println(n.getRetVal() + ":BPLA_Set")


// n = demo.getJNativeByFunction("BPLA_SetPaperLength")
// n.setRetVal(Type.INT)
// n.setParameter(0, Type.INT, "350")
// n.invoke()
// System.out.println(n.getRetVal() + ":BPLA_SetPaperLength")


n = demo.getJNativeByFunction("BPLA_SetEnd")
n.setRetVal(Type.INT)
n.setParameter(0, Type.INT, "112");
n.invoke()
System.out.println(n.getRetVal() + ":BPLA_SetEnd")

n = demo.getJNativeByFunction("BPLA_StartArea")
n.setRetVal(Type.INT)
n.setParameter(0, Type.INT, "0")
n.setParameter(1, Type.INT, "700")
n.setParameter(2, Type.INT, "10")
n.setParameter(3, Type.INT, "10")
n.setParameter(4, Type.INT, "30")
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, "资产编码:"+list.get(i).getAssetNo())
n.setParameter(1, Type.INT, "4")
n.setParameter(2, Type.INT, "240")
n.setParameter(3, Type.STRING, "Arial")
n.setParameter(4, Type.INT, "20")
n.setParameter(5, Type.INT, "0")
n.invoke()
// System.out.println(n.getRetVal() + ":BPLA_PrintTruetype")
ms+="ID:"+list.get(i).getId()+";资产编码:"+list.get(i).getAssetNo()+";";
n = demo.getJNativeByFunction("BPLA_PrintTruetype")
n.setRetVal(Type.INT)
n.setParameter(0, Type.STRING, "资产名称:"+list.get(i).getAssetName())
n.setParameter(1, Type.INT, "4")
n.setParameter(2, Type.INT, "210")
n.setParameter(3, Type.STRING, "Arial")
n.setParameter(4, Type.INT, "20")
n.setParameter(5, Type.INT, "0")
n.invoke()
// System.out.println(n.getRetVal() + ":BPLA_PrintTruetype")
ms+="资产名称:"+list.get(i).getAssetName()+";";
// 
n = demo.getJNativeByFunction("BPLA_PrintTruetype")
n.setRetVal(Type.INT)
n.setParameter(0, Type.STRING, "资产型号:"+list.get(i).getSpecifications())
n.setParameter(1, Type.INT, "4")
n.setParameter(2, Type.INT, "180")
n.setParameter(3, Type.STRING, "Arial")
n.setParameter(4, Type.INT, "20")
n.setParameter(5, Type.INT, "0")
n.invoke()
// System.out.println(n.getRetVal() + ":BPLA_PrintTruetype")
// 
ms+="资产型号:"+list.get(i).getSpecifications()+";";
n = demo.getJNativeByFunction("BPLA_PrintTruetype")
n.setRetVal(Type.INT)
n.setParameter(0, Type.STRING, "保管部门:"+list.get(i).getCustodyDepartment())
n.setParameter(1, Type.INT, "4")
n.setParameter(2, Type.INT, "150")
n.setParameter(3, Type.STRING, "Arial")
n.setParameter(4, Type.INT, "20")
n.setParameter(5, Type.INT, "0")
n.invoke()
System.out.println(n.getRetVal() + ":BPLA_PrintTruetype")
ms+="保管部门:"+list.get(i).getCustodyDepartment()+";";
// 
n = demo.getJNativeByFunction("BPLA_PrintTruetype")
n.setRetVal(Type.INT)
n.setParameter(0, Type.STRING, "保管人:"+list.get(i).getCustodian())
n.setParameter(1, Type.INT, "4")
n.setParameter(2, Type.INT, "120")
n.setParameter(3, Type.STRING, "Arial")
n.setParameter(4, Type.INT, "20")
n.setParameter(5, Type.INT, "0")
n.invoke()
// System.out.println(n.getRetVal() + ":BPLA_PrintTruetype")
// 
ms+="保管人:"+list.get(i).getCustodian()+";";
n = demo.getJNativeByFunction("BPLA_PrintTruetype")
n.setRetVal(Type.INT)
n.setParameter(0, Type.STRING, "购置日期:"+list.get(i).getStartUseDate())
n.setParameter(1, Type.INT, "4")
n.setParameter(2, Type.INT, "90")
n.setParameter(3, Type.STRING, "Arial")
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, "资产来源:"+(StringUtil.isNotNull(list.get(i).getAssetSource())?list.get(i).getAssetSource():" "))
n.setParameter(1, Type.INT, "4")
n.setParameter(2, Type.INT, "60")
n.setParameter(3, Type.STRING, "Arial")
n.setParameter(4, Type.INT, "20")
n.setParameter(5, Type.INT, "0")
n.invoke()
// System.out.println(n.getRetVal() + ":BPLA_PrintTruetype")

ms+="资产来源:"+(StringUtil.isNotNull(list.get(i).getAssetSource())?list.get(i).getAssetSource():" ")+";";

n = demo.getJNativeByFunction("BPLA_PrintTruetype")
n.setRetVal(Type.INT)
n.setParameter(0, Type.STRING, "资产属性:"+(StringUtil.isNotNull(list.get(i).getAssetAttributeName())?list.get(i).getAssetAttributeName():" "))
n.setParameter(1, Type.INT, "4")
n.setParameter(2, Type.INT, "30")
n.setParameter(3, Type.STRING, "Arial")
n.setParameter(4, Type.INT, "20")
n.setParameter(5, Type.INT, "0")
n.invoke()
// System.out.println(n.getRetVal() + ":BPLA_PrintTruetype")

ms+="资产属性:"+(StringUtil.isNotNull(list.get(i).getAssetSource())?list.get(i).getAssetAttributeName():" ")+";";


System.out.println(ms)
n = demo.getJNativeByFunction("BPLA_PrintQR")
n.setRetVal(Type.INT)
n.setParameter(0, Type.STRING, "QA,"+list.get(i).getAssetNo())

n.setParameter(1, Type.INT, "330")
n.setParameter(2, Type.INT, "60")
n.setParameter(3, Type.INT, "3")
n.setParameter(4, Type.INT, "2");//使用1 扫描枪能扫出结果 使用2手机能扫出结果 
n.setParameter(5, Type.INT, "0")
n.setParameter(6, Type.INT, "50")
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, "Arial")
// 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, "1")
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)
} 

}

总结

通过调用dll文件,传递参数,打印不同的二维码数据,希望可以帮到大家,大家也可以随时关注我的公众号“泉城IT圈子”