For more information on the ESC/POS command set which receipt printers use for printing, see What is ESC/POS and How Do I Use It by Michael Billington, also the author of the excellent escpos-php PHP library for receipt printers.
Steps to run:
- Save the code below as
NetworkReceiptPrinter.java– change printer IP accordingly. - Run
javac -encoding utf8 NetworkReceiptPrinter.javato compile. Theencodingoption is required else there will be a compilation error due to the Chinese text in the file – “error: unmappable character for encoding Cp1252”. java NetworkReceiptPrinter
import java.io.*;
import java.net.*;
class NetworkReceiptPrinter {
public static void main(String argv[]) throws Exception {
String str = "\n\n一二三四五六七八九十 1234567890"; // start str on new line
String encoding = "GBK";
String printerIp = "192.168.1.123";
int printerPort = 9100;
try {
Socket socket = new Socket(printerIp, printerPort);
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
DataInputStream in = new DataInputStream(new ByteArrayInputStream(str.getBytes(encoding)));
out.writeByte(0x1C);
out.writeBytes("&");
while (in.available() != 0) {
out.write(in.readByte());
}
out.writeByte(0x1C);
out.writeBytes(".");
out.writeByte(0x00); // terminate line else str may be cut off and appear in next printout
out.flush();
out.close();
in.close();
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

