Как распечатать символ рисования коробки с помощью ESC/POS

Я хотел бы напечатать символ рисования коробки с помощью ESC / POS на матричном принтере Epson LQ310 в приложении для Android. Образец распечатки будет таким, как показано ниже,

Сначала я использую подчеркивание и вертикальную черту, чтобы нарисовать его границы. Но распечатка оказалась с ломаной линией. Вместо этого я хотел бы иметь непрерывную линию.

Затем я увидел, что есть символ рисования коробки с кодом ASCII в качестве прикрепленного изображения,

Используя эту информацию о коде ASCII, я попытался распечатать, но распечатка стала другими символами. Я узнал, что это связано с другим набором символов, используемым в принтере.

При проверке с помощью команды ESC/P есть только эти 2 команды, касающиеся набора символов.

      ESC R
ESC t

Пример кода, который я сделал, как показано ниже, я просто попробовал несколько символов, но безрезультатно. Как зарегистрировать набор символов PC850 и использовать его с помощью команды ESC t?

      char[] verticalLine = {0x00B3};
char[] verticalPlusLeft = {0x00B4};
char[] upperRightCorner = {0x00BF};
char[] bottomRightCorner = {0x00D9};
char[] upperLeftCorner = {0x00DA};
char[] bottomLeftCorner = {0x00C0};
char[] horizonLine = {0x00C4};
char[] verticalPlusRight = {0x00C3};
char[] charMultiLangual = {0x001B, 0x0074, 0x0002}; //ESC,t,2(PC850)
char[] charCodeDefault = {0x001B, 0x0074, 0x0000}; //ESC,t,0(Default)

strPrintFooterTitle = new String(charMultiLangual);
strPrintFooterTitle += printFooter(new String(upperLeftCorner), "TYPE", new String(verticalLine), "QTY", new String(upperRightCorner)) + "\n";
strPrintFooterBig = printFooter(new String(verticalLine), "Crate - Big", "|", "5", "|") + "\n";
strPrintFooterSmall = printFooter("|", "Crate - Small", "|", "10", "|") + "\n";
strPrintFooter = new String(charCodeDefault);

Буду признателен за любую оказанную помощь. Спасибо

1 ответ

Вы можете использовать именно эти символы рисования прямоугольников, а не их коды, примерно так:

      System.out.println("┌───────────────────────┬───────┐");
System.out.println("│  Type                 │  QTY  │");
System.out.println("├───────────────────────┼───────┤");
System.out.println("│  Crate - Big          │    7  │");
System.out.println("├───────────────────────┼───────┤");
System.out.println("│  Crate - Small        │    3  │");
System.out.println("└───────────────────────┴───────┘");

Выход:

      ┌───────────────────────┬───────┐
│  Type                 │  QTY  │
├───────────────────────┼───────┤
│  Crate - Big          │    7  │
├───────────────────────┼───────┤
│  Crate - Small        │    3  │
└───────────────────────┴───────┘

См. Также: Как повернуть матрицу на 90 градусов против часовой стрелки в java?

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