我想使用转义序列(ESC/POS)将印地语字符集添加到我的热敏打印机(Gprinter 型号:GP-U80030I)中。我从程序手册中阅读了 Escape 命令。我应该按什么顺序向打印机发送命令。要使用的命令是:
ESC % n
ESC & y c1 c2 [x1 d1...d(y X x1)]...[xk d1...d(y X xk)]
ESC ? n
我正在向打印机发送 ascii 值(例如 ESC - 27、% - 38 等)。
我想使用转义序列(ESC/POS)将印地语字符集添加到我的热敏打印机(Gprinter 型号:GP-U80030I)中。我从程序手册中阅读了 Escape 命令。我应该按什么顺序向打印机发送命令。要使用的命令是:
ESC % n
ESC & y c1 c2 [x1 d1...d(y X x1)]...[xk d1...d(y X xk)]
ESC ? n
我正在向打印机发送 ascii 值(例如 ESC - 27、% - 38 等)。
从这样的事情开始:
private void defineChars() {
int[] cmd = new int[5 + 37] ; // already set to 0
cmd[0] = 0x1b; // ESC
cmd[1] = 0x26; // &
cmd[2] = 0x03; // y - height
cmd[3] = 'A'; // starting char to define, c1, 'A' ..
cmd[4] = 'A'; // c2, ending character, in this case we define only one
cmd[5] = 12; // x1, dots in horizontal direction
int shift = 6;
// fill the matrix as you wish..
// 'A' -> black square
for (int i = 0; i < 36; i++) {
cmd[i + shift] = 0xff;
}
sendCommand(cmd);
}
之后不要忘记使用命令激活自定义字体:
private void setCustomChars(boolean set) {
//select user defined chars
sendCommand(0x1B, 0x25, (set) ? 1 : 0);
}
现在,当您将“A”字符发送到打印机时,它将打印您自定义的字符(黑色方块,因为所有位都设置为 1)..