Ответ 1
После работы в течение последних 7 дней я получил правильный способ получить распечатку, а затем разрезал эту квитанцию резаком. Команды ESC очень важны для печати и других задач, связанных с принтером. Мы должны передать эти ESC CMD в виде массива байтов на линейный принтер.
Существует несколько команд, например ниже
ESC FF DataPrint,
[code] <1B>H<OC>H,
[Function] Print all the data in the print area collectively.
Поэтому просто создайте массив байтов этой команды и передайте его на принтер.
e.g. byte[] print = {0x1b,0x0c};
теперь передайте его на принтер. В зависимости от принтера должен быть такой метод, как getCmd() или writeCmd() и т.д.
Как мы можем выполнить эти команды ESC в android, программируя? Ниже приведен код для этого
BuildinEx840 lpd=new BuildinEx840();
lpd.setMulticharMode(LinePrinterDeviceBase.CHARACTERSET_USA);
//initialise Cutter
lpd.initCutter();
LinePrinter lp=new LinePrinter();
lp.open(lpd);
lpd.open();
try{
lpd.init();
}catch(IOException e){
e.printStackTrace();
}
for(int i=0; i<5;i++){
lp.printNormal("Testing the Line Printer");
}
int totalLinefeed=listofItemList.size();
//ESC CMD for line feeds
byte[] lfs=new byte[]{0x1B,'d', 5};
sendtoExprinter(lpd,lfs);
//ESC CMD for paper cut
lfs=new byte[]{0x1B,'i'};
sendtoExprinter(lpd, lfs);
private void sendtoExprinter(BuildinEx840 dev, byte[] instr) {
try{
dev.write(instr);
}catch(IOException e){
e.printStackTrace();
}
}
ОБНОВЛЕНИЕ: Печать изображения через термопринтер
В некоторых принтерах вы можете определить изображение в энергонезависимой памяти принтера, а затем распечатать изображение с помощью ESC cmd 1C 70 01 30. В некоторых других принтерах вы можете указать прямой путь изображения при печати изображения через термопринтер.
В любом линейном принтере мы должны передать ESC CMD этой командой printerObj.write(command);. Я хочу поблагодарить SO сообщество и особую благодарность TheBlastOne, который вел меня по правильному пути.
Если у кого-то есть проблемы с интеграцией термопринтеров, не стесняйтесь спрашивать.