1. 程式人生 > >Android 無線連線WiFi印表機列印圖片全部亂碼

Android 無線連線WiFi印表機列印圖片全部亂碼

已經實現呼叫無線印表機列印,但是打印出來的圖片全是亂碼,編碼格式都是統一的,求大神指導一下,謝謝感激不盡,如果有完整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();
    }