java调用并口打印机打印并获取状态的问题,纠结了好久还是不行?请大侠指点迷津
各位大神小弟在一个项目遇到打印机方面的的问题,客户使用的epson TM-T88IV型号的并口pos打印机 见到很多人说到使用rxtxcomm.jar可以实现,在爱普生官网也找到了相应的示例,但是就是对并口打印机的示例只是做了简单的打印,监听的方法没有,最好找到一种方法获取打印机的返回流新建一个线程读取信息,但是流对象获取到了就是不管怎么样读到的都是空信息,下面是我的线程代码:
new Runnable() {
public void run() {
byte[] readBuffer = new byte[20];
try {
inputStream=parallelPort.getInputStream();
System.out.println("parallelPort:"+parallelPort);
// read data
while (inputStream.available() > 0) {
int numBytes = inputStream.read(readBuffer);
inputStream.read(readBuffer);
}
// print data
String result = new String(readBuffer);
inputStream.close();
outputStream.close();
System.out.println("Read: "+result);
}catch (IOException e) {
System.out.println("读取失败!"+e.getMessage());
}
}
希望有这方面的大神们指点下?
另外还有一种方法就是通过包中自带的监听器,方法我也试过,可是不管什么状态打印是否成功都一直输出“ParallelImp.c LPGETSTATUS is undefined!”代码
监听器方法实现代码如下:
public void parallelEvent(ParallelPortEvent evt) {
switch (evt.getEventType()) {
case ParallelPortEvent.PAR_EV_BUFFER:// 并口输出缓冲区满
System.out.println("并口输出缓冲区满");
break;
case ParallelPortEvent.PAR_EV_ERROR:
System.out.println("并口发生错误");
//case SerialPortEvent.DATA_AVAILABLE:
// we get here if data has been received
byte[] read_buffer = new byte[20];
int number_bytes = 0;
try {
// read data
while (input.available() > 0) {
number_bytes = input.read(read_buffer);
}
// print data
String result = new String(read_buffer);
System.out.println("Read: " + result);
for (int i = 0; i < number_bytes; i++) {
System.out.println(i + ":" + read_buffer[i] + ":" +
(char)read_buffer[i]);
}
} catch (IOException e) {}
break;
} // switch