文字大小 Epson TM-H5000II

Text size Epson TM-H5000II

我正在尝试减小文本的大小,根据手册我需要使用 ESC ! 1 (https://reference.epson-biz.com/modules/ref_escpos/index.php?content_id=23) 但我不知道如何将它传递给 java 代码,我尝试定义一个 bite 并使用十进制、十六进制和 ASCII 但不起作用。

public class JavaPrinter implements PrinterApi {
private Logger logger = LogManager.getLogger(JavaPrinter.class);

PrintService printService;
boolean isFile = false;
String printerName = null;
PrintStream prnStr;
private PipedInputStream pipe;
PipedOutputStream dataOutput;
Doc mydoc;

byte[] widthNormal = { 0x1b, '!', '1' };
@Override
public void setNormal() {
    if (isFile)
        return;
    try {
        prnStr.write(widthNormal);
    } catch (IOException e) {
        throw new DeviceServerRuntimeException("", e);
    }
}

以上是我写的部分代码,非常感谢任何建议,帮助!谢谢

您需要使用 1 作为数字与 ESC ! 命令一起将 ESC/POS 中的较大字体 A 更改为较小的字体 B。

您还需要在它后面加上一些文本和一个换行符,我在您的示例中看不到。一个独立的 Java 示例如下所示:

import java.io.FileOutputStream;
import java.io.IOException;

class FontChangeDemo {
    public static void main(String[] argv) throws IOException {
        byte[] reset = {0x1b, '@'};
        byte[] fontA = {0x1b, '!', 0x00};
        byte[] fontB = {0x1b, '!', 0x01};

        try(FileOutputStream outp = new FileOutputStream("/dev/usb/lp0")) {
            outp.write(reset);
            outp.write("Font A\n".getBytes());
            outp.write(fontB);
            outp.write("Font B\n".getBytes());
            outp.write(fontA);
            outp.write("Font A again\n".getBytes());
        }
    }
}

在 TM-T20II 上显示:

这假设您的设置正常运行,并且能够将二进制数据传送到您的打印机。