Wie kann ich einen Druckauftrag mit PJL und Java abbrechen, nachdem ich ihn über das Netzwerk gesendet habe?Java

Java-Forum
Anonymous
 Wie kann ich einen Druckauftrag mit PJL und Java abbrechen, nachdem ich ihn über das Netzwerk gesendet habe?

Post by Anonymous »

Ich habe ein Problem mit dem Abbruch von Druckaufträgen
wo ich erfolgreich drucken kann, nachdem ich eine Druckmethode mit Java wie dieser ausgeführt habe
public static void print(byte[] bytes, String jobName, String printerIpAdd, Integer printerPort, String trayNumber) {

System.out.println("port " + printerPort);
try (Socket socket = new Socket(printerIpAdd, printerPort)) {
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
System.out.println("bytes[] = " + bytes.length);
out.write(27); //esc
out.write("%-12345X@PJL\n".getBytes());
out.write(("@PJL SET JOBNAME=" + jobName + "\n").getBytes());
out.write(("@PJL SET LPAPERSOURCE=TRAY" + trayNumber + "\n").getBytes());
out.writeBytes("@PJL SET PALETTESOURCE = DEVICE\n");
out.write(("@PJL SET PAPER=A5\n").getBytes());
out.write(("@PJL SET COPIES=1"\n").getBytes());
out.write("@PJL ENTER LANGUAGE=PDF\n".getBytes());
out.write(bytes); //data
out.write(27); //esc
out.write("%-12345X@PJL\n".getBytes());
out.flush();
out.close();
} catch (IOException ex) {
LOGGER.error(ex);
}
}

Das Problem tritt auf, wenn sich kein Papier im Drucker befindet oder die Abdeckung geöffnet oder das Fach entfernt wird
der Druckauftrag steht noch aus, sodass ich die vorherige Bestellung für den Drucker stornieren muss .
Ich versuche also, diesen Code zu verwenden, arbeite aber nicht mit mir und erstelle einen anderen Auftrag zum Drucken, anstatt ihn abzubrechen
public static void cancelPrintJob(String jobName, String printerIpAdd, Integer printerPort) {
System.out.println("port " + printerPort);
try (Socket socket = new Socket(printerIpAdd, printerPort)) {
DataOutputStream out = new DataOutputStream(socket.getOutputStream());

/*
%-12345X@PJL
@PJL DEFAULT JOBID =ON
@PJL USTATUS JOB = ON
@PJL JOB
%-12345X@PJL
@PJL ENTER LANGUAGE = PCL
E...PCLJob.!!!JobCancel !
@PJL EOJ
%-12345X

*/
out.write(27); //esc
out.write("%-12345X@PJL\r\n".getBytes());
out.write(("DEFAULT JOBID =ON\r\n").getBytes());
out.write(("@PJL USTATUS JOB = ON\r\n").getBytes());
out.write(("@PJL JOB\r\n").getBytes());
out.write(27); //esc
out.write("%-12345X@PJL\\rn".getBytes());
out.write("@PJL ENTER LANGUAGE = PCL\r\n".getBytes());
out.write(27); //esc
out.write(("@PJL EOJ NAME =" + jobName + "\r\n").getBytes());
out.write(27); //esc
out.write("%-12345X@PJL\n".getBytes());
out.flush();
out.close();
} catch (IOException ex) {
LOGGER.error(ex);
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post