Printing 如何使用转义序列在热敏打印机中添加用户定义的字符集?

Printing 如何使用转义序列在热敏打印机中添加用户定义的字符集?,printing,escaping,thermal-printer,epson,escpos,Printing,Escaping,Thermal Printer,Epson,Escpos,我想使用转义序列(ESC/POS)将印地语字符集添加到热敏打印机(Gprinter型号:GP-U80030I)中。我阅读程序手册中的转义命令。我应该按什么顺序向打印机发送命令。 要使用的命令包括: 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() {

我想使用转义序列(ESC/POS)将印地语字符集添加到热敏打印机(Gprinter型号:GP-U80030I)中。我阅读程序手册中的转义命令。我应该按什么顺序向打印机发送命令。 要使用的命令包括:

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

    }

现在,当您将“A”字符发送到打印机时,它将打印您自定义的字符(黑色sqare,因为所有位都设置为1)

从以下内容开始:

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

    }

现在,当您将“A”字符发送到打印机时,它将打印您自定义的字符(黑色sqare,因为所有位都设置为1)

我希望这将有助于我打印阿拉伯字符,但我担心,在设置或更改字符代码后,现在打印得很好的英文字符将受到影响。这会影响吗?在这种情况下,字符“A”将被另一个字符覆盖,是的。您可以替换不使用的特殊字符,例如在33-64范围内。或者你可以使用函数defineArabChars()和resetArabChars()并在需要时切换你的字符集。我希望这能帮助我打印阿拉伯字符,但我担心在我设置或更改字符代码后,现在打印得很好的英文字符会受到影响。这会影响吗?在这种情况下,字符“A”将被另一个字符覆盖,是的。您可以替换不使用的特殊字符,例如在33-64范围内。或者,您可以使用函数defineArabChars()和resetArabChars()并在需要时切换字符集。。