• 大小: 26KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: Java
  • 标签: java  打印机  

资源简介

使用java实现调用打印机动态指令打印条码。

资源截图

代码片段和文件信息

import org.xvolks.jnative.JNative;
import org.xvolks.jnative.Type;
import org.xvolks.jnative.exceptions.NativeException;
import org.xvolks.jnative.pointers.Pointer;
import org.xvolks.jnative.pointers.memory.MemoryBlockFactory;

/**
 * 条形码打印工具类
 * 
 * @author xiaobin_luo
 * 
 */
public class NativeDllFacadeUtil {

private static JNative term = null;
private static String szSavePath = “C:\\Argox“;
private static String szSaveFile = “C:\\Argox\\PPLA_Example.Prn“;
 private static final String PRINTER_DLL = “Winppla.dll“; 

/**
 * 加载dll文件
 */
static {
System.load(“G:\\kd_work\\dll\\BCLW32.dll“);
System.load(“G:\\kd_work\\dll\\WinPort.dll“);
System.load(“G:\\kd_work\\dll\\Winppla.dll“);
System.load(“G:\\kd_work\\dll\\Winpplb.dll“);
}

 private static JNative getJNativeByFunction(String functionName) throws NativeException{ 
        return new JNative(PRINTER_DLL functionName); 
    } 

/**
 * 取得或秀出此函数库版本资讯。
 * 
 * @param nShowMessage
 *            0 -> 讯息视窗不显现. 1 -> 讯息视窗显现。
 * @return
 * @throws NativeException
 * @throws IllegalAccessException
 */
private static String A_Get_DLL_Version(int nShowMessage)
throws NativeException IllegalAccessException {
if (term != null) {
term = null;
}
String value = ““;
term = new JNative(“Winppla.dll“ “A_Get_DLL_Version“/* 函数名 */);
//term = new JNative(“Winpplb.dll“ “B_Get_DLL_Version“/* 函数名 */);
term.setRetVal(Type.INT); /* 返回值类型 */
term.setParameter(0 0); /* 左起第一个参数,索引为0 */
term.invoke();
value = term.getRetVal();
return value;
};

/**
 * 传回 USB 的资料长度
 * 
 * @return
 * @throws NativeException
 * @throws IllegalAccessException
 */
private static int A_GetUSBBufferLen() throws NativeException
IllegalAccessException {
if (term != null) {
term = null;
}
int value = 0;
term = new JNative(“Winppla.dll“ “A_GetUSBBufferLen“/* 函数名 */);
//term = new JNative(“Winpplb.dll“ “B_GetUSBBufferLen“/* 函数名 */);
term.setRetVal(Type.INT); /* 返回值类型 */
term.invoke();
value = term.getRetValAsInt();
return value;
};

/**
 * 储存 USB 埠的资料
 * 
 * @param buf
 *            储存 USB Printer 资料
 * @return  0 -> OK.
 * @throws NativeException
 * @throws IllegalAccessException
 */
private static int A_EnumUSB(byte[] buf) throws NativeException
IllegalAccessException {
if (term != null) {
term = null;
}
int value = 0;
Pointer pointer = new Pointer(MemoryBlockFactory.createMemoryBlock(buf.length));      
pointer.setByteAt(0 buf[0]);
term = new JNative(“Winppla.dll“ “A_EnumUSB“/* 函数名 */);
//term = new JNative(“Winpplb.dll“ “B_EnumUSB“/* 函数名 */);
term.setRetVal(Type.INT); /* 返回值类型 */
//term.setParameter(0 pointer); /* 左起第一个参数,索引为0 */
term.setParameter(0Type.PSTRUCT buf);
term.invoke();
value = term.getRetValAsInt();
return value;
};

/**
 * 取得 USB 埠的装置名称和装置路径。
 * 
 * @param nPort
 * @param pDevice

评论

共有 条评论