В большинстве случаев метод sendMessage()
модуля PrinterModule имеет методы print
и moveToNextLine
, реализованные в нем. Следовательно, символ печатается, и курсор перемещается на следующую строку сразу после вызова метода sendMessage()
.
Вам нужно будет внести изменения в реализацию метода sendMessage()
модуля PrinterModule. Удалите вызовы print
и newLine
из метода sendMessage()
. Затем вы можете отправить столько символов, сколько захотите, в outputStream
. Если вы хотите окончательно распечатать, просто отправьте команду print
на принтер.
UPDATE
Метод sendMessage()
вызывает sendMsg()
, который в конечном итоге выполняет оператор sendByte(new byte[]{(byte) 13, (byte) 10, (byte) 0}, dev);
. Эта строка отвечает за печать после каждого sendMsg()
вызова. byteArray
содержит команду для печати и добавления newLine каждый раз, когда ему отправляется какое-либо сообщение. Удалите эту строку отсюда.
После этого продолжайте отправлять символы на принтер, используя sendMessage()
. Когда вы, наконец, захотите распечатать весь оператор, отправьте только команду PrinterModule.sendByte(new byte[]{(byte) 13, (byte) 10, (byte) 0}, dev);
. Все ваши символы будут напечатаны в одну строку, если будет достаточно места, в противном случае он будет перемещен на следующую строку.
ОБНОВЛЕНИЕ 2
Вот ссылка для UsbController . Вы можете напрямую добавить это как новый файл в свой проект (не нужно добавлять файлы SDK). Способ использования UsbController
класса находится здесь в UsbFragment .