Печать на Printronix T5000r через Ethernet с использованием Java - PullRequest
1 голос
/ 02 марта 2011

У меня проблема с печатью на этом конкретном принтере.

public void print(String fileName, String printerIp) {

 try {
  BufferedReader streamIn  = new BufferedReader(new FileReader(fileName));
  String line;

   Socket socket = new Socket(printerIp, 9100);
   Writer writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));

   while ((line = streamIn.readLine()) != null) {
    writer.write(line);
   }
   writer.flush();
  socket.close();
  streamIn.close();

}

Ситуация выглядит как все хорошо, но принтер не печатает, когда я использую другую программу для печати, все работает нормально. Есть мысли?

1 Ответ

2 голосов
/ 02 марта 2011

Решение - записать весь файл на принтер.

   public void printFile(File file, String printerIp) throws PrintException, IOException {

            Socket socket = new Socket(printerIp, 9100);

            FileInputStream fileInputStream = new FileInputStream(file);
            byte [] mybytearray  = new byte [(int)file.length()];

            fileInputStream.read(mybytearray,0,mybytearray.length);

            OutputStream outputStream = socket.getOutputStream();

            outputStream.write(mybytearray,0,mybytearray.length);

                 //Curious thing is that we have to wait some time to make more prints.
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {

            }

            outputStream.flush();
            outputStream.close();
            socket.close();
            fileInputStream.close();
        }
...