使用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您对整个转储的看法是正确的。谢谢。不客气,但坦白说,我很惊讶它能起作用。哦,好吧,活到老学到老。