使用Java通过以太网在Printronix T5000r上打印

使用Java通过以太网在Printronix T5000r上打印,java,printing,label,Java,Printing,Label,我在这台特定的打印机上打印时遇到问题 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 Buffer

我在这台特定的打印机上打印时遇到问题

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();

}
   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();
        }
情况看起来一切正常,但打印机不打印,当我使用其他程序打印时,一切正常。
有什么想法吗?

解决方案是将整个文件写入打印机

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();

}
   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();
        }

您使用的协议是否正确?这里的内容看起来像是将文件直接转储到打印机-我认为您需要使用适当的打印协议:此外,这可能会引起兴趣:关于printService,我认为无法通过IP指定打印机。您是否有将整个文件转储到打印机的示例?@Piskvor您对整个转储的看法是正确的。谢谢。不客气,但坦白说,我很惊讶它能起作用。哦,好吧,活到老学到老。