我正在开发一个必须为每个交易打印收据的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());
}
}
但是,我没有得到正确的结果。
希望你能在这种情况下帮助我。