在Android中的蓝牙热敏打印机中打印条形码

时间:2016-08-12 06:29:17

标签: android image printing bluetooth

我正在开发一个必须为每个交易打印收据的Android项目。截至目前,我可以使用此代码在蓝牙热敏打印机上打印文本。

  public void printSample() {

        String str = "";
        str += "THIS IS A SAMPLE PRINT" + "\n";
        str += "xxxxxxxxxxxxxxxxxxxxxx" + "\n";
        str += "xxxxxxxxxxxxxxxxxxxxxx" + "\n";
        str += "xxxxxxxxxxxxxxxxxxxxxx" + "\n";
        str += "xxxxxxxxxxxxxxxxxxxxxx" + "\n";
        str += "xxxxxxxxxxxxxxxxxxxxxx" + "\n";
        str += "xxxxxxxxxxxxxxxxxxxxxx" + "\n";
        str += "\n\n\n\n";

        printNormal(str);
    }

 public boolean printNormal(String text) {
        byte[] format = {27, 33, 0};

        boolean isPrintSuccess = false;
        if (mmOutputStream == null) {
            return false;
        }
        try {
            mmOutputStream.write(PrinterCommands.INIT);
            mmOutputStream.write(format);
            mmOutputStream.write(text.getBytes(), 0, text.getBytes().length);
            isPrintSuccess = true;
        } catch (NullPointerException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }

        return isPrintSuccess;
    }

我尝试过从我的可绘制资源中打印条形码。请参阅下面的代码。

public void printImage() {
    Drawable myDrawable = getResources().getDrawable(R.drawable.barcode);
    Bitmap bmp = ((BitmapDrawable) myDrawable).getBitmap();
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bmp.compress(Bitmap.CompressFormat.PNG, 90, stream);
    byte[] byteArray = stream.toByteArray();

    try {
        mmOutputStream.write(byteArray,0,byteArray.length);
    } catch (NullPointerException e) {
        Log.d(TAG, "NullPointerException " + e.toString());
    } catch (IOException e) {
        Log.d(TAG, "IOException " + e.toString());
    }

}

但是,我没有得到正确的结果。

希望你能在这种情况下帮助我。

enter image description here

0 个答案:

没有答案
相关问题