5

Zebra MZ 220 プリンターがあり、Bluetooth 経由で Android アプリから QR コードを印刷する必要があります。テキストと画像は印刷できますが、QR コードは印刷できません。

これを見つけました: https://km.zebra.com/kb/index?page=content&id=SO7133&actp=LIST_POPULAR

だから、ここに私のコードがあります:

new Thread(new Runnable() {
public void run() {
    try {

        // Instantiate connection for given Bluetooth® MAC Address.
        ZebraPrinterConnection thePrinterConn = new BluetoothPrinterConnection("XX:XX:XX:XX:XX:XX");

        // Initialize 
        Looper.prepare();

        // Open the connection - physical connection is established here.
        thePrinterConn.open();



        // SO THIS SHOULD PRINT THE QR CODE BUT DOESN'T :(
        thePrinterConn.write("! 0 200 200 500 1\r\nB QR 10 100 M 2 U 10\r\nMA,QR code ABC123\r\nENDQR\r\nFORM\r\nPRINT".getBytes());



        //Make sure the data got to the printer before closing the connection
        Thread.sleep(500);

        // Close the connection to release resources.
        thePrinterConn.close();

        Looper.myLooper().quit();

    } catch (Exception e) {
        // Handle communications error here
        e.printStackTrace();
    }
}
}).start();

それは機能しません。だから....どんな助けも大歓迎です:)

4

2 に答える 2

7

あなたはとても、とても親しかったようです。CPCL (RW のネイティブ言語) では、すべてのコマンドは改行文字とキャリッジ リターン文字の両方で終了する必要があります。あなたのコードでは、これはすべての CPCL コマンドの後の "\r\n" に対応しています。CPCL チェーンの最後の PRINT コマンドの後に "\r\n" を付け忘れたようです。

別のフレームワークに切り替える代わりに、この情報が将来役立つことを願っています。Zebra SDK を使用して純粋な CPCL コマンドをプリンターに送信すると、帯域幅が大幅に小さくなり、QR バーコード ビットマップを生成してすべてを送信するよりも高速に印刷されます。ネイティブの CPCL を使用すると、より高い品質で印刷することもできます (そのため、スキャンが容易になります)。また、アプリに別の JAR をバンドルする必要はありません。

参照: CPCL マニュアル (セクション 2 ページ 1 のメモ): http://www.zebra.com/content/dam/zebra/manuals/en-us/printer/cpcl-pm-en.pdf

于 2013-04-28T23:41:31.900 に答える