已经实现调用无线打印机打印,但是打印出来的图片全是乱码,编码格式都是统一的,求大神指导一下,谢谢感激不尽,如果有完整demo请发给我参考一下。
以下为调用打印图片的一个方法:
public void draw2PxPoint(Bitmap bmp) throws IOException {
int size = bmp.getWidth() * bmp.getHeight() * 4 + 1000;
byte[] data = new byte[size];
int k = 0;
//设置行距为0的指令
data[k++] = 0x1B; // ESC Escape (转义)
data[k++] = 0x33;
data[k++] = 0x00; //Null (空)
// 逐行打印
for (int j = 0; j < bmp.getHeight() / 24f; j++) { //8
//打印图片的指令
data[k++] = 0x1B; // ESC Escape (转义)
data[k++] = 0x2A;
data[k++] = 33;
data[k++] = (byte) (bmp.getWidth() % 256); //nL
data[k++] = (byte) (bmp.getWidth() / 256); //nH
//对于每一行,逐列打印
for (int i = 0; i < bmp.getWidth(); i++) {
//每一列24个像素点,分为3个字节存储
for (int m = 0; m < 3; m++) {
//每个字节表示8个像素点,0表示白色,1表示黑色
for (int n = 0; n < 8; n++) {
byte b = px2Byte(i, j * 24 + m * 8 + n, bmp);
data[k] += data[k] + b;
}
k++;
}
}
data[k++] = 10;//换行
}
socketOut.write(data);
socketOut.flush();
}