Как использовать команду 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.


person Allanh    schedule 18.08.2016    source источник
comment
Чувак, удалось заставить его работать?   -  person Tim    schedule 24.10.2016
comment
Вы можете увидеть образец кода по этой ссылке: печать изображения escpos   -  person PapusCoder    schedule 21.02.2019


Ответы (2)


Вы можете попробовать

        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);

or

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

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

person Tim    schedule 24.10.2016

        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);

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

person PapusCoder    schedule 21.02.2019