Необработанная печать ESCP через сокет JAVA

У меня есть эта команда Raw ESC/POS для LX-300+, и я хочу распечатать ее через сервер печати с помощью Socket.

String escp = " '\x1B' + '\x40', // initialize the printer, reset printer to defaults " +                                                                 
     " '\x1B' + '\x78' + '\x31', // Set Print Quality NLQ " +
     " '\x1B' + '\x6B' + '\x31', // Select typeface San serif " +
     " '\x1B' + '\x43' + '\x00' + '\x06', // set Page Length to 6 Inch " +
     " '\x1B' + '\x4D', // Select 12 cpi Spacing " +
     " '\x1B' + '\x45', // SET Bold Font ";

Вопрос в том, можем ли мы разобрать эту строку escp с помощью Socket? я использую этот код,

            Socket socket = null;
            OutputStream output = null;
            BufferedReader reader = null;
            
            try {
                socket = new Socket("10.0.5.30", 9100);
                socket.setSoTimeout(5000);
                output = socket.getOutputStream();
                reader = new BufferedReader(new java.io.InputStreamReader(socket.getInputStream()));
                
            } catch (UnknownHostException e) {
                // TODO: handle exception
            }
            
            if (socket != null && output != null) {
                try
                {                                       
                    output.write(escp.getBytes());
                    output.flush();
                    socket.shutdownOutput();
                
                    output.close();
                    socket.close();
                }
                catch (Exception e)
                {
                    System.out.println(e.toString());

                }
            }
  

В результате принтер LX-300 не преобразует команду ESC/POS. Просто напечатайте строку внутри переменной escp. Любое решение для этого? я использую линукс 18.04 к вашему сведению.


person Avian Driyanto    schedule 14.09.2020    source источник
comment
Поскольку выходные данные определены как строка символов, они будут в нормальном состоянии. Если вы хотите вывести его как управляющий код, определите его как массив байтов, как в этой статье. Как мне инициализировать массив байтов в Java? Тогда шрифт без засечек будет \x01 вместо \x31. Справочное руководство по EPSON ESC/P   -  person kunif    schedule 14.09.2020
comment
Как я определил, что String escp в массив байтов, включая текст, который я хочу напечатать? я до сих пор не понимаю, как это сделать. Давайте попробуем, я хочу напечатать текст Just a Test жирным шрифтом. Как определить это с помощью массива байтов?   -  person Avian Driyanto    schedule 15.09.2020
comment
Например, вы можете собрать содержимое печати, обратившись к этой статье Dot Matrix BOLD Printing in Java, и преобразовать ее в байт массив, обратившись к этой статье. Как преобразовать строку Java в массив байтов ASCII?   -  person kunif    schedule 15.09.2020
comment
@kunif Думаю, теперь я понял. Большое спасибо от меня.   -  person Avian Driyanto    schedule 15.09.2020