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 关注
- 501 浏览
添加回答
举报