Я использую термопринтер, который выдвигает ящик до или после печати.Но я хочу остановить это, и я посылаю шестнадцатеричный код, чтобы вывести ничью, когда это необходимо.Последовательность, которую я использую: openDrawerCommand = "\u001B\u0070\u0030\u0042\u0045";
Это нормально работает в Windows, но если я запускаю это в Linux, я получаю некоторую ошибку не в приложении, а в драйвере принтера, говорящем, что «возникла проблема при обработке документа« Печать Java »»,О чем это все ?Я думаю, что этот код как-то связан с тем, что он хорошо работает на всех платформах.Код, который я использую, показан ниже:
public OpenCashDrawer() {
PrintService pservice = PrintServiceLookup.lookupDefaultPrintService();
System.out.println("printservice"+pservice);
try {
DocPrintJob job = pservice.createPrintJob();
String openDrawerCommand = ((char)0x1B70111)+"";
//
openDrawerCommand = "\u001B\u0070\u0030\u0042\u0045";
byte by[] = openDrawerCommand.getBytes();
//char[] printdata = "hello world\n".toCharArray();
// System.out.println(by[1]);
DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
//PrintService pservice = PrintServiceLookup.lookupDefaultPrintService();
//DocPrintJob pjob = pservice.createPrintJob();
//DocFlavor flavor = DocFlavor.CHAR_ARRAY.TEXT_PLAIN;
Doc doc = new SimpleDoc(by, flavor, null);
job.print(doc, null);
} catch (Exception e) {
System.out.println("Whoa bro. The printer is balls. Check it:");
e.printStackTrace();
}
}