3 回答

TA貢獻1887條經驗 獲得超5個贊
我也嘗試過此方法,得到了自己的解決方案,我想我已經弄清楚了SELECT_BIT_IMAGE_MODE命令的工作原理。
該命令public static byte[] SELECT_BIT_IMAGE_MODE = {0x1B, 0x2A, 33, 255, 3};在類PrinterCommands是POS命令圖像打印。
前兩個是非常標準的,接下來的三個確定要打印圖像的模式和尺寸。為了這個解決方案,我們假設第二個元素(33,我們的索引為零)始終為33。
該byte []的最后兩個元素是指您要打印的圖像的Width(以像素為單位)屬性,元素3有時稱為nL,元素4有時稱為nH。他們實際上都指的寬度,nL是Low Byte同時nH是High Byte。這意味著我們最多可以擁有一個寬度為1111 1111 1111 1111b(二進制)的圖像,該寬度為65535d(十進制),盡管我尚未嘗試過。如果未將nL或nH設置為正確的值,則將隨圖像一起打印垃圾字符。
某種程度上,Android文檔告訴我們字節數組中字節值的限制為-128和+127,當我嘗試輸入255時,Eclipse要求我將其轉換為Byte。
無論如何,回到nL和nW,對于您的情況,您有一個寬度為576的圖像,如果將576轉換為Binary,我們將得到兩個字節,如下所示:
0000 0010 0100 0000
在這種情況下,低字節為0100 0000,高字節為0000 0010。將其轉換回十進制,我們得到nL = 64和nH = 2。
在我的情況下,我打印了一個寬度為330px的圖像,將330轉換為二進制,我們得到:
0000 0001 0100 1010
現在,在這種情況下,低字節為0100 1010,高字節為0000 0001。轉換為十進制,我們得到nL = 74和nH = 1。
- 3 回答
- 0 關注
- 525 瀏覽
添加回答
舉報