各位大神小弟在一个项目遇到打印机方面的的问题,客户使用的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

解决方案 »

  1.   

    有人会吗?这问题已经困扰我一个星期了,那位大侠解救下我吧!
      

  2.   

    本来想说找找这个变量哪里定义过,结果仔细一看好像能成功打印,帮楼主顶一下等人出现,顺便一起学习
      

  3.   

    自己也顶一下,等高手的出现!
      

  4.   

    小样 结贴吧 别等了 在等也是徒劳