Печать штрих-кодов на блютуз термопринтере

Я работаю с термопринтером 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.

Спросите производителя принтера.

CommonsWare 08.04.2019 12:58

У поставщика нет поддержки разработчика для приложения Android, также этот принтер может печатать штрих-код с использованием сторонних приложений из магазина игр: play.google.com/store/apps/…

Keyur Kariya 10.04.2019 08:05
1
2
2 405
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

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

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

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

Другие вопросы по теме