Estou encontrando dificuldades ao tentar imprimir texto simples usando PCL em Java com minha impressora Deskjet 2752e. A impressora suporta HP PCL 3 GUI, HP PCLm (HP Apps/UPD) e URF (AirPrint) 1. Apesar de várias tentativas e variações do código PCL, não consegui obter uma impressão bem-sucedida. Mesmo o envio de texto sem formatação resulta em nenhuma resposta da impressora.
Meu objetivo é enviar um trabalho de impressão diretamente para minha rede de impressoras por meio de dados brutos da porta 9100, com a capacidade de posicionar o texto usando as coordenadas x e y, se possível. Estou desenvolvendo um aplicativo Android que pode imprimir texto sem solicitar ao usuário as configurações de impressão ou sair do aplicativo. É crucial que o aplicativo envie de forma automática e eficiente os dados necessários para a impressora e inicie o processo de impressão imediatamente. Como único usuário do aplicativo, pretendo simplificar a experiência de impressão e eliminar solicitações desnecessárias, tornando o aplicativo mais rápido e eficiente. Portanto, a estrutura de impressão do Android não é uma opção
Aqui está o último código com o qual tenho trabalhado:
private void sendPrintJob() {
System.out.println("Connecting to the printer...");
try (Socket socket = new Socket("192.168.0.6", 9100)) {
System.out.println("Connected.");
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
out.write(generatePCL3GUI().getBytes());
out.flush();
out.close();
System.out.println("Print job successfully sent.");
} catch (Exception e) {
System.out.println(e);
}
}
public String generatePCL3GUI() {
StringBuilder pclCode = new StringBuilder();
pclCode.append("\u001B%-12345X@PJL JOB\r\n");
pclCode.append("@PJL ENTER LANGUAGE=PCL3GUI\r\n");
pclCode.append("\u001B*s0M"); // Set color mode to monochrome
pclCode.append("\u001B*t300R"); // Set resolution to 300 dpi
pclCode.append("\u001B*r0F"); // Set orientation to portrait
pclCode.append("\u001B(8U"); // Select font: Courier New
pclCode.append("\u001BE"); // Start of the print job
pclCode.append("\u001B&a100H"); // Set position (x=100, y=100)
pclCode.append("Hello, world!\r\n"); // Print text
pclCode.append("\u001B%-12345X@PJL EOJ\r\n");
return pclCode.toString();
}