当您购买热敏收据打印机时,您还会收到一本手册,告诉您应该使用哪个字节序列来执行操作(剪切,完成作业,设置字体等)。但是我对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);
}
然而,这根本不会产生任何影响,打印机根本不做任何事情。
我真的找不到任何如何做的例子。
任何答案/评论都将不胜感激。
答案 0 :(得分:1)
尝试以下命令可以打印条形码。
byte[] barCode = {0x1d,0x6b,0x07,0x6e,0x61,0x72};
Here 0x6e,0x61,0x72 are the charters "nar" which converted into barcode.
我相信它会奏效。如有任何疑问,请通知我。