4

我正在尝试在打印机 POS 上打印票。这是爱普生 TMU220PD。我可以打印,但我不知道如何对打印机进行编程以使用更大的字体进行打印,以及如何自动裁切纸张。我读了很多书,他们说我可以使用命令 ESC/POS 的页面,但我不知道这是如何工作的。我有一个带有下一个代码的 man 类:

   public static void main(String[] args) {
JavaApplication14 java = new JavaApplication14();
try {
    FileWriter file = new FileWriter("/dev/usb/lp2");
    BufferedWriter buffer = new BufferedWriter(file);
    PrintWriter ps = new PrintWriter(buffer);
    java.setFormato(5, ps);
  java.cortar(ps);
}

“切”的方法是这个

 private void cortar(PrintWriter ps) {
try {
    char[] ESC_CUT_PAPER = new char[]{0x1B, 'm'};
    ps.write(ESC_CUT_PAPER);
} catch (Exception e) {
    System.out.print(e);
}

}

当我要打印时,打印机正常工作以打印文本,但它不切纸。我也需要增加文本大小,但我不知道该怎么做以及如何在 java 上使用命令 ESC/POS。

4

2 回答 2

1

你可以试试吗

        byte[] bCut = new byte[4];
        bCut[0] = GS;
        bCut[1] = 86;
        bCut[2] = 65;
        bCut[3] = 0;
        String sCut = new String (bCut);
        ps.write(bCut);

或者

       char[] cutOff = new char[]
                { 29, 'V', 65, 0 };
        ps.write(cutOff);

让我知道它是否有效?

于 2016-10-24T06:55:02.320 回答
0
        String text_to_print = "Hello world!";
        PrintService foundService = PrintServiceLookup.lookupDefaultPrintService();
        DocPrintJob dpj = foundService.createPrintJob();

        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        /// your legacy commands ini
        // initialize printer
        outputStream.write(27); // ESC
        outputStream.write('@');

        // print text
        outputStream.write(text_to_print.getBytes());

        // feed 5 lines
        outputStream.write(27); // ESC
        outputStream.write('d');
        outputStream.write(5);

        // cut paper
        outputStream.write(29); // GS
        outputStream.write('V');
        outputStream.write(48);

你可以在这里看到完整的代码

于 2019-02-21T13:00:25.100 回答