在蓝牙热敏打印机上打印条码
Printing barcodes on a bluetooth thermal printer
我正在使用蓝牙热敏打印机,并且能够打印普通文本和发票。但是我无法打印条形码。
我正在使用 ZXING 库生成条码
OutputStream os = mBluetoothSocket.getOutputStream();
String text = mEditText.getText().toString();
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
BitMatrix bitMatrix = multiFormatWriter.encode(text,BarcodeFormat.CODE_128,200,200);
BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
Bitmap bitmap = barcodeEncoder.createBitmap(bitMatrix);
os.write("Hello".getBytes()); //Prints Hello
如何使用相同的逻辑打印位图?
我试过一些代码,比如
int size = bitmap.getRowBytes() * bitmap.getHeight();
ByteBuffer byteBuffer = ByteBuffer.allocate(size);
bitmap.copyPixelsToBuffer(byteBuffer);
byte[] byteArray = byteBuffer.array();
os.write(byteArray);
但是这给出了一个空白打印和滚动继续滚动
我正在使用 Godex-MX30 打印机
您需要告诉打印机您正在发送要打印的图像并指定打印方式。
通常这是使用 ESC/POS 代码完成的。大多数像这样的打印机使用 ESC/POS 代码。
ESC * 是指定的方式。您也可以查看此问题中的许多示例 java code or in this 。
有关详细信息,请参阅精工爱普生 reference。
不确定这台打印机,但许多热敏收据打印机也支持使用 Esc/Pos 代码创建和打印条形码。你可以试试 this.
我正在使用蓝牙热敏打印机,并且能够打印普通文本和发票。但是我无法打印条形码。
我正在使用 ZXING 库生成条码
OutputStream os = mBluetoothSocket.getOutputStream();
String text = mEditText.getText().toString();
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
BitMatrix bitMatrix = multiFormatWriter.encode(text,BarcodeFormat.CODE_128,200,200);
BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
Bitmap bitmap = barcodeEncoder.createBitmap(bitMatrix);
os.write("Hello".getBytes()); //Prints Hello
如何使用相同的逻辑打印位图?
我试过一些代码,比如
int size = bitmap.getRowBytes() * bitmap.getHeight();
ByteBuffer byteBuffer = ByteBuffer.allocate(size);
bitmap.copyPixelsToBuffer(byteBuffer);
byte[] byteArray = byteBuffer.array();
os.write(byteArray);
但是这给出了一个空白打印和滚动继续滚动
我正在使用 Godex-MX30 打印机
您需要告诉打印机您正在发送要打印的图像并指定打印方式。
通常这是使用 ESC/POS 代码完成的。大多数像这样的打印机使用 ESC/POS 代码。
ESC * 是指定的方式。您也可以查看此问题中的许多示例 java code or in this
有关详细信息,请参阅精工爱普生 reference。
不确定这台打印机,但许多热敏收据打印机也支持使用 Esc/Pos 代码创建和打印条形码。你可以试试 this.