2013-04-18 4 views
5

AndroidアプリからZebraプリンタ(iMZ 320)にラベルを印刷しようとしていますが、コマンドラインを理解できていないようです。コマンドがZebra iMZ320で認識されない

私は、プリンタに送るように私は紙に、このサンプルコード、プリンタのプリントすべてのコマンドを試してみてください。

zebraPrinterConnection.write("^XA^FO50,50^ADN,36,20^FDHELLO^FS^XZ".getBytes()); 

私はZebraの公式サイトからZPLプログラミングのチュートリアルを読んだが、私ZPLコマンドでプリンタを正常に動作させる方法を理解できません。

+4

reopen.Iこの質問は閉鎖されているはずはないと思うしてください。私は今iOS上でZebra iMZ320を使っています。私はこれを再度理解していますが、これが再開されなければコメントに回答を投稿します。 – jaime

+0

Kは、私の答えを下記のjasonの答えに対するコメントとして追加しました。 – jaime

+1

ありがとうございました。私は誰が私のポストを閉鎖したのかわからない、私はそれが閉じられてはならないと思う。 – Darknoe

答えて

6

は単なる2行のテキストを印刷する非同期タスクでこのコードを実行します。これは、あなたが提供したZPLコマンドを解析して解釈せず、むしろそれらを出力することを意味します。ライン印刷モードではなく、プリンタをZPLモードに設定する必要があります。次のコマンドを実行する必要があります。

! U1のSETVAR「device.languages」「ZPL:hybrid_xml_zpl」だけではなく、「ZPL」あなたは改行を含める必要が

お知らせ「

は、いくつかのケースでは、への言語を設定する必要があります」このコマンドの最後に文字(またはキャリッジリターン)を挿入します。 Zebraセットアップユーティリティを使用すると、メイン画面の「通信」ボタンを押すことによって利用可能な「コミュニケーション」の観点から、プリンタに直接コマンドを送信できます。

ゼブラセットアップユーティリティ:http://www.zebra.com/us/en/products-services/software/manage-software/zebra-setup-utility.html

ZPLマニュアルページ705(詳細は、上記1のようにコマンド):https://support.zebra.com/cpws/docs/zpl/zpl_manual.pdf

+0

また、上記のコマンドをZebra Setup Utilitiesの代わりにあなたのアプリを通して送信することもできますが、文字列の最後に '\ r \ n'を付ける必要があります。 –

+1

最後に、Zebraの「カスタマーサービス」が私に連絡し、ZPLのCPCLと画像でテキストコマンドを送信する必要があると説明しましたが、その情報は私はまだ良いフォーマットで何も印刷することができない複雑で役に立たない。どうもありがとう:) – Darknoe

+2

見つけた! "hybrid_xml_zpl"はラインプリントモードで出荷され、 "zpl"に設定されていると動作しないため、setvarを "hybrid_xml_zpl"に設定する必要があります。 https://km.zebra.com/kb/index?page=content&id=SO8503&actp=LIST_RECENT – jaime

1

シンプルテキストを印刷する場合は、通常の「生の」データトラフのBTソケットをZebraプリンタに送信して印刷することができます。 Zebraプリントライブラリを使用する必要はありません。ゼブラIMZは、ライン印刷モードで出荷することがあり

protected Object doInBackground(Object... params) { 
    //bt address 
    String bt_printer = "00:22:58:31:85:68"; 
    String print_this = "Hello Zebra!\rThis is second line"; 
    //vars 
    BluetoothSocket socket = null; 
    BufferedReader in = null; 
    BufferedWriter out = null; 
    //device from address 
    BluetoothDevice hxm = BluetoothAdapter.getDefaultAdapter().getRemoteDevice(bt_printer); 
    UUID applicationUUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); 
    try { 
     //create & connect to BT socket 
     socket = hxm.createRfcommSocketToServiceRecord(applicationUUID); 
     socket.connect(); 
     in = new BufferedReader(new InputStreamReader(socket.getInputStream())); 
     out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); 
     out.write(print_this); 
     out.flush(); 
     //some waiting 
     Thread.sleep(3000); 
     //in - nothing, just wait to close connection 
     in.ready(); 
     in.skip(0); 
     //close all 
     in.close(); 
     socket.close(); 
     out.close(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (InterruptedException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    }  
    return null; 
} 
+1

テキストと印刷イメージのフォーマットが必要な場合、プリンタは自分のコードでコマンドを理解していません。( – Darknoe

+0

"line_print"モードに設定されていればrawテキストですが、それはほとんどの人が望むものではありませんが、Zebraのデフォルト設定は無意味でも無意味でもあります。 Bizarro! –

関連する問題