2017-08-04 12 views
1

商品リストの価格ラベルを印刷したいと考えています。価格が変わると私はcsvを使うことができず、社内のアプリケーションでこれをやっています。プリンタにデータの配列を送る方法私は一度に1つのラベルを印刷することができますが、これは遅いです。 Pテンプレートソフトウェアを使用すると、本当に素早く印刷できます。どんな助けでも大歓迎です。ブラザープリンターEsc/P

私はコマンドをプリンタにHexで送信していますが、正常に動作しています。 Esc/PモードとPテンプレートモードで印刷できます。 Pテンプレートモードは、レイアウトをプリンタに設定して保存することができます。オブジェクトデータを送信するだけです。

どのように並べ替えの配列を送信するための助けをいただければ幸いです。

答えて

0

私たちはMacコンピュータを使用しています(すべてのUnixマシンで同じことが行われます)。単純なbashスクリプトからプリンタにデータを送信します。 Windowsコンピュータを使用している場合は、同じ方法で動作し、バイナリデータをシリアル/ USBポートに送信する方法を見つけるだけです。

(Unixマシンが私たちよりも好まれるのは、インターネットを介して外部のサーバーデータベースと通信するため、Unixスクリプトでは簡単な作業です)。

すべてのUnixマシンには、プリンタにバイナリデータを送信できる「lp」コマンドがあります。私はbashターミナルにスクリプトを書いています。スクリプトは引数を解析し、それらを 'data'変数にコピーし、次にこの 'data'変数をプリンタに送ります。要するに

、小さなラベルは次のように印刷することができます。もちろん

data="\x1Bia\x00"  # set esc_p mode 
data="${data}\[email protected]"  # initialize printer (resets many variables) 
data="${data}\x1BX\x32" # set font height 
data="${data}Hello"  # the actual data to be printed 
data="${data}\x0C"  # advances the page (basically prints the label) 

# Check your binary on the screen (for debugging): 
echo -ne $data | hexdump -C 

# Send the data to the printer 
echo -ne $data | lp -d Brother_PT_P900W 

、自分のプリンタ名を持つ「Brother_PT_P900W」に置き換える必要があります。