2014-12-22 223 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. 

我相信它會起作用。如有任何疑問,請讓我知道。

相關問題