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

305 阅读1分钟
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); 
} 

}