2017-08-31 115 views
0

因此我们正在开发此应用程序,通过蓝牙打印收据。该过程正在进行,但我们唯一的问题是我们无法打印我们想要的布局。在Android中的同一行上打印两个不同的文本对齐方式蓝牙热敏打印机

我们希望通过这种方式来打印:

| ID Number:  123456789| 

,其中左字段默认值,右边字段会自动生成。

我们尝试了解周围的工作,但似乎蓝牙打印机只能读取一个文本对齐。

这里是我们当前的代码:

align=new byte[]{0x1B, 'a',0x00};  \\this is left alignment 
mmOutputStream.write(align); 
mmOutputStream.write(msg.getBytes()); 
align=new byte[]{0x1B, 'a', 0x02}; \\this is right alignment 
mmOutputStream.write(align); 
mmOutputStream.write(msg2.getBytes()); 

和输出将永远是顶部对齐。例如,当我们在左侧设置顶部对齐方式时。它只会显示像这样:

| ID Number:123456789  | 

我希望你能帮助我们的人,我们一直在想这一个星期左右。 谢谢! :)

回答

0

我解决,像这样创建功能:

void writePrint(byte[] align, String msg){ 
    try { 
     mmOutputStream.write(align); 
     String space = " "; 
     int l = msg.length(); 
     if(l < 31){ 
      for(int x = 31-l; x >= 0; x--) { 
       space = space+" "; 
      } 
     } 
     msg = msg.replace(" : ", space); 
     mmOutputStream.write(msg.getBytes()); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

而且我们可以使用它:

writePrint(PRINT_CENTER, "| ID Number : 123456789 |");