如何使用Escape序列在Thermal打印机中添加用户定义的字符集?

时间:2016-11-07 07:03:39

标签: printing escaping thermal-printer epson escpos

我想使用转义序列(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等)。

1 个答案:

答案 0 :(得分:2)

从这样的事情开始:

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

现在,当您发送&#39; A&#39;打印机的字符将打印您自定义的字符(黑色sqare,因为所有位都设置为1)..