Печать штрих-кодов на термопринтере Bluetooth - PullRequest
0 голосов
/ 08 апреля 2019

Я работаю с термопринтером Bluetooth и смог напечатать обычный текст и счет-фактуру. Но я не могу печатать штрих-коды.

Я создаю штрих-код с библиотекой 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

1 Ответ

2 голосов
/ 01 июня 2019

Вы должны сообщить принтеру, что отправляете изображение на печать, и указать способ его печати. ​​

Обычно это делается с помощью кодов ESC / POS. Большинство таких принтеров используют коды ESC / POS.

ESC *, как это указано. Вы можете посмотреть множество примеров в этих вопросах java-код или в этом своем решении .

Для получения дополнительной информации см. Seiko Epson reference .

Не уверен насчет этого принтера, но многие тепловые чековые принтеры поддерживают создание и печать штрих-кодов, также используя код Esc / Pos. Вы можете попробовать что-то вроде this .

...