3 回答

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