ESC命令将条形码打印到热敏打印机?

时间:2014-12-22 11:13:57

标签: java arrays printing barcode thermal-printer

当您购买热敏收据打印机时,您还会收到一本手册,告诉您应该使用哪个字节序列来执行操作(剪切,完成作业,设置字体等)。但是我对Java的理解不足以让我能够使用ESC / POS命令。

我有一台Citizen CT S2000热敏收据打印机。我已经设法使用字节序列进行切割和换行,并操纵热敏打印机应该具有的字体。但是我无法弄清楚如何使用ESC命令生成和打印条形码。

有关如何执行此操作的手册,请参阅第144页的here。此处提供了BASIC中的示例代码。

LPRINT CHR$(&H1D);"k"; CHR$(73); CHR$(10);
LPRINT "{BNo.{C"; CHR$(12); CHR$(34); CHR$(56);
LPRINT CHR$(&HA);
END

这是我尝试打印条形码。

public static void barcode() throws Exception{
    byte[] b = {0x7b, 0x43, 0x12, 0x34}; 
    //This is the commands as I interpreted the to print out 12 and 34

    DocPrintJob job = PrintServiceLookup.lookupDefaultPrintService().createPrintJob();

    DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE; 
    /*This is how I send byte sequences. 
    if you got something better then don't hesitate yelling at me :D : ). */

    Doc doc = new SimpleDoc(b, flavor, null);

    job.print(doc, null);                   
}

然而,这根本不会产生任何影响,打印机根本不做任何事情。

我真的找不到任何如何做的例子。

任何答案/评论都将不胜感激。

1 个答案:

答案 0 :(得分:1)

尝试以下命令可以打印条形码。

byte[] barCode = {0x1d,0x6b,0x07,0x6e,0x61,0x72};

Here 0x6e,0x61,0x72 are the charters "nar" which converted into barcode.

我相信它会奏效。如有任何疑问,请通知我。