2014-12-22 228 views
0

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

我有一台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

也许你应该看看JavaPOS:http://www.javapos.com/samplecode.html。您可能需要为它安装驱动程序(对于爱普生来说,有一个JavaPOS ADK),但是一旦你得到它的工作,这是一个很好的工作库。 – wvdz

+0

谢谢,我一定会检查出来。但是真的有必要安装驱动程序吗?我能够得到一些其他命令,例如cut命令。 –

+1

我不确定。我实现了类似的东西,但是这是用于Epson打印机的,如果不安装Epson JavaPOS驱动程序,这不起作用。 – wvdz

回答

1

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

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

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

我相信它会起作用。如有任何疑问,请让我知道。

相关问题