0

アプリに接続されたBluetoothプリンターで領収書を印刷しているAndroidでPOSアプリを実行しようとしています。デバイスに付属の HOINSDK を使用して「大」、「小」、および QR コードを印刷できます。また、「左」と「中央」を揃えることはできますが、「右」に揃えることはできません。どんな助けでも大歓迎です。

以下は、それぞれのコードです。

//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");

誰かが正しい配置コードで私を助けることができれば、それは役に立ちます.

4

2 に答える 2

0

以前も同じ問題に直面しましたが、解決策が見つからなかったので、以下の方法を解決策として使用しています。

例、

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();
}

私の場合、1 行の小さなテキストには 42 文字が含まれ、大きなテキストには 24 文字が含まれます

ありがとう。

于 2018-06-29T08:09:55.863 に答える