Как использовать команду ESC/POS Java

Я пытаюсь распечатать на принтере POS для билетов. Это EPSON TMU220PD. Я могу печатать, но я не знаю, как я могу запрограммировать принтер для печати шрифтом большего размера и как я могу сделать это для автоматической резки бумаги. Я много читаю, и есть страница, где говорят, что я могу использовать команды ESC/POS, но я понятия не имею, как это работает. У меня есть мужской класс со следующим кодом:

   public static void main(String[] args) {
JavaApplication14 java = new JavaApplication14();
try {
    FileWriter file = new FileWriter("/dev/usb/lp2");
    BufferedWriter buffer = new BufferedWriter(file);
    PrintWriter ps = new PrintWriter(buffer);
    java.setFormato(5, ps);
  java.cortar(ps);
}

И метод для "вырезать" это

 private void cortar(PrintWriter ps) {
try {
    char[] ESC_CUT_PAPER = new char[]{0x1B, 'm'};
    ps.write(ESC_CUT_PAPER);
} catch (Exception e) {
    System.out.print(e);
}

}

Когда я собираюсь печатать, принтер работает нормально для печати текста, но при этом не обрезает бумагу. Мне тоже нужно увеличить размер текста, но я не знаю, как я могу это сделать и как я могу использовать команды ESC/POS на Java.

1 ответ

Можете ли вы попробовать либо

        byte[] bCut = new byte[4];
        bCut[0] = GS;
        bCut[1] = 86;
        bCut[2] = 65;
        bCut[3] = 0;
        String sCut = new String (bCut);
        ps.write(bCut);

или же

       char[] cutOff = new char[]
                { 29, 'V', 65, 0 };
        ps.write(cutOff);

и дайте мне знать, если это работает?

        String text_to_print = "Hello world!";
        PrintService foundService = PrintServiceLookup.lookupDefaultPrintService();
        DocPrintJob dpj = foundService.createPrintJob();

        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        /// your legacy commands ini
        // initialize printer
        outputStream.write(27); // ESC
        outputStream.write('@');

        // print text
        outputStream.write(text_to_print.getBytes());

        // feed 5 lines
        outputStream.write(27); // ESC
        outputStream.write('d');
        outputStream.write(5);

        // cut paper
        outputStream.write(29); // GS
        outputStream.write('V');
        outputStream.write(48);

Вы можете увидеть полный код здесь

Другие вопросы по тегам