Я использую термографический принтер Analogics для распечатки счёта с устройства Android. Они предоставили sdk для принтера, но нет никакой информации об выравнивании текста. I Centere Align, Right Align, по умолчанию работает Left Align.Термопринтер Android, не принимающий байты выравнивания
До сих пор я пытался ниже команду для печати:
private static final byte[] ALIGN_LEFT = {0x1B, 0x61, 0};
private static final byte[] ALIGN_CENTER = {0x1B, 0x61, 1};
private static final byte[] ALIGN_RIGHT = {0x1B, 0x61, 2};
или
public static final byte[] ALIGN_LEFT = new byte[]{27, 97, 0};
public static final byte[] ALIGN_CENTER = new byte[]{27, 97, 1};
public static final byte[] ALIGN_RIGHT = new byte[]{27, 97, 2};
Моя команда печати ниже:
public boolean printData(byte[] msg) {
boolean flag = false;
try {
this.mmOutputStream.write(msg);
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
public boolean printData(String msg) {
boolean flag = false;
try {
this.mmOutputStream.write(msg.getBytes());
this.mmOutputStream.flush();
flag = true;
} catch (IOException e) {
e.printStackTrace();
}
return flag;
}
Я хотел напечатать команду, как название продукта следует оставить, количество + цена будет выровнена по правому краю.
public static String nameLeftValueRight(String leftValue, String rightValue) {
return applyParametersToPrinter(leftValue, DataConstants.ALIGN_LEFT) +
applyParametersToPrinter(rightValue, DataConstants.ALIGN_RIGHT);
}
public static String applyParametersToPrinter(String data, byte[] param) {
String s = new String(param);
return String.valueOf(s) + data;
}
Chiru, вам удалось найти решение? –
@NinjoeQuah Nope – chiru