Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在蓝牙POS打印机中打印右对齐的文本?_Android_Printing_Bluetooth_Byte_Pos - Fatal编程技术网

Android 如何在蓝牙POS打印机中打印右对齐的文本?

Android 如何在蓝牙POS打印机中打印右对齐的文本?,android,printing,bluetooth,byte,pos,Android,Printing,Bluetooth,Byte,Pos,我一直在尝试在安卓系统中做一个POS应用程序,我正在连接到该应用程序的蓝牙打印机上打印收据。我可以使用设备提供的HOINSDK打印“大”、“小”和二维码,也可以对齐“左”和“中”,但无法对齐“右”。感谢您的帮助 以下是各个项目的代码: //For Large Text cmd[0] = 27; cmd[1] = 97; cmd[2] &= 0xEF; mSer

我一直在尝试在安卓系统中做一个POS应用程序,我正在连接到该应用程序的蓝牙打印机上打印收据。我可以使用设备提供的HOINSDK打印“大”、“小”和二维码,也可以对齐“左”和“中”,但无法对齐“右”。感谢您的帮助

以下是各个项目的代码:

//For Large Text

                cmd[0] = 27;
                cmd[1] = 97;
                cmd[2] &= 0xEF;
                mService.write(cmd);
                mService.sendMessage("" + large_txt.getText().toString(), "GBK");

//For Small Text
                cmd[0] = 0x1b;
                cmd[1] = 0x21;
                cmd[2] &= 0xEF;
                mService.write(cmd);          
                mService.sendMessage("" + small_txt.getText().toString(), "GBK");

//For Center Alignment small text
                cmd[0] = 27;
                cmd[1] = 97;
                cmd[2] |= 1;
                mService.write(cmd);
                cmd[0] = 27;
                cmd[1] = 97;
                cmd[2] = 1;
                mService.write(cmd);  
                mService.sendMessage("" + center_txt.getText().toString(), "GBK");

//For centre alignment Large Text
                cmd[1] = 97;
                cmd[2] |= 1;
                mService.write(cmd);
                cmd[0] = 0x1b;
                cmd[1] = 0x21;
                cmd[2] = 0x10;
                mService.write(cmd);  
                mService.sendMessage("" + center_txt.getText().toString(), "GBK");

//For Left alignment
                cmd[0] = 27;
                cmd[1] = 97;
                cmd[2] |= 1;
                mService.write(cmd);
                cmd[0] = 27;
                cmd[1] = 97;
                cmd[2] = 0;
                mService.write(cmd);
                mService.sendMessage("" + left_txt.getText().toString(), "GBK");

如果有人能帮我找到正确的对齐代码,那会很有帮助。

我以前也遇到过同样的问题,但我没有找到任何解决方案,因此,我使用下面的方法作为解决方案

例如

String largetext = "Title";
String largeFontMessage = getWhiteSpace(24 - largetext.length()) + largetext;
String smalltext = "Message";
String smallFontMessage = getWhiteSpace(42 - smalltext.length()) + smalltext;

// print largeFontMessage;
// print smallFontMessage;

public static String getWhiteSpace(int size) {
    StringBuilder builder = new StringBuilder(size);
    for (int i = 0; i < size; i++) {
        builder.append(' ');
    }
    return builder.toString();
}
String largetext=“Title”;
字符串largeFontMessage=getWhiteSpace(24-largetext.length())+largetext;
字符串smalltext=“Message”;
字符串smallFontMessage=getWhiteSpace(42-smalltext.length())+smalltext;
//打印大字体信息;
//打印短信;
公共静态字符串getWhiteSpace(整型大小){
StringBuilder=新的StringBuilder(尺寸);
对于(int i=0;i
在我的例子中,单行小文本包含42个字符大文本包含24个字符

谢谢