我找到了使用库解码位图的解决方案:
https://github.com/imrankst1221/Thermal-Printer-in-Android
将字符串编码为二维码位图的函数:
public Bitmap encodeToQrCode(String text, int width, int height){
QRCodeWriter writer = new QRCodeWriter();
BitMatrix matrix = null;
try {
matrix = writer.encode(text, BarcodeFormat.QR_CODE, width, height);
} catch (WriterException ex) {
//
}
Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
for (int x = 0; x < width; x++){
for (int y = 0; y < height; y++){
bmp.setPixel(x, y, matrix.get(x,y) ? Color.BLACK : Color.WHITE);
}
}
return bmp;
}
try {
Bitmap bmp = encodeToQrCode("Hello world", 200, 200);
if (bmp != null ) {
byte[] command = Utils.decodeBitmap(bmp);
BluetoothPrintDriver.BT_Write(command);
} else {
Log.e("Print Photo error", "file not found");
}
} catch (Exception e) {
e.printStackTrace();
Log.e("PrintTools", "file not found");
}