如何使用ESC / POS命令Java

时间:2016-08-18 01:43:32

标签: java printing command escpos

我试图在打印机POS上打印票据。它是EPSON TMU220PD。我可以打印,但我不知道如何使用更大的字体对打印机进行打印以及如何自动剪切纸张。我已经阅读了很多内容,并且有一个页面,他们说我可以使用命令ESC / POS,但我不知道如何工作。 我有一个人类,下一个代码:

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

" cut"是这个

 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命令。

2 个答案:

答案 0 :(得分:0)

你能试试吗

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

让我知道它是否有效?

答案 1 :(得分: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);

您可以在here上看到完整的代码