Использование Java для отправки команд PJL на принтер HP 4515
Я пытаюсь отправить команды языка работы принтера на принтер HP 4515. Однако принтер ничего не печатает. Ниже мой код. Принтер расположен удаленно, и я могу только попросить кого-нибудь проверить, распечатано ли что-нибудь. К сожалению, ничего не было распечатано. Команды PJL не в хорошем формате? Как я могу получить статус работы, используя Java & PJL?
socket = new Socket("192.168.1.101", 9100);
out = new DataOutputStream(socket.getOutputStream());
DataInputStream input = new DataInputStream(socket.getInputStream());
final char ESC = 0x1b;
final String UNESCAPED_UEL = "%-12345X";
String UEL = ESC + UNESCAPED_UEL;
out.writeBytes(UEL);
out.writeBytes("@PJL\r\n");
//out.writeBytes("@PJL SET MEDIASOURCE = TRAY2\r\n"); //I tried this line of code as well
out.writeBytes("@PJL SET PAPER = LETTER\r\n");
out.writeBytes("@PJL ENTER LANGUAGE = PDF\r\n");
for(int i=0; i<copies; i++) {
out.write(ps, 0, ps.length); //ps is of type byte[]. It contains the content of PostScript file
}
out.flush();
Настройки бумаги принтера:
TRAY 1 SIZE
TRAY 1 TYPE
TRAY 2 SIZE LETTER
UNIT OF MEASURE
X DIMENSION INCHES (5.83 - 8.5)
Y DIMENSION INCHES (8.27 - 14.0)
TRAY 2 TYPE
0 ответов
Как уже отмечалось, похоже, что вам не хватает закрывающей команды "Универсальный выходной язык" (UEL). Требуется в PJL. Он определяет начало и конец любого потока данных на основе PJL.
Например:
socket = new Socket("192.168.1.101", 9100);
out = new DataOutputStream(socket.getOutputStream());
DataInputStream input = new DataInputStream(socket.getInputStream());
final char ESC = 0x1b;
final String UNESCAPED_UEL = "%-12345X";
String UEL = ESC + UNESCAPED_UEL;
out.writeBytes(UEL);
out.writeBytes("@PJL\r\n");
out.writeBytes("@PJL SET PAPER = LETTER\r\n");
out.writeBytes("@PJL ENTER LANGUAGE = PDF\r\n");
for(int i=0; i<copies; i++) {
out.write(ps, 0, ps.length);
}
out.writeBytes(UEL); // <-- add this
out.flush();
Я не могу сказать, что-то не так с вашим синтаксисом команды PJL, но для справки это работает для меня.