SmaPriパッケージでは、SmaPri Libraryが対応するサトー製プリンタと連携しラベルの印刷を行う機能を提供します。
Biz/Browser HTとプリンタはBluetoothもしくはTCPで接続します。
ラベル印刷の発行には、「SmaPri Designer」で作成したフォーマットファイル(*.spfmtz)を利用します。Biz/Browser HTは、フォーマットファイルから読み込んだフォーマット情報と発行データから印刷コマンドを作成し、プリンタに発行を指示します。
※SATO、SmaPriは、サトーホールディングス株式会社の登録商標または商標です。
プリンタとの接続から印刷指示を行うまでのCRSコードの一例を記載します。
まずコード全体を下記に記載します。個別の説明は後述します。
Form Form1 { X = 0; Y = 0; Width = 600; Height = 400; SmaPri sm; SmaPriPrinter sp; Button btnSetPrinter { X = 10; Y = 10; Width = 50; Height = 20; Title = "SetPrinter"; Function OnTouch(e) { ^.sp.SetPrinter(SmaPriPrinter.DeviceTypeTcp, "192.168.1.15", SmaPriPrinter.ProtocolStatus4, false); } } Button btnConnect { X = 70; Y = 10; Width = 50; Height = 20; Title = "Connect to Printer"; Function OnTouch(e) { ^.sp.Connect(); } } Button btnRegisterFormat { X = 10; Y = 40; Width = 50; Height = 20; Title = "Register format"; Function OnTouch(e) { ^.sm.RegisterFormat("http://192.168.1.15/format/sample.spfmtz"); } } Button btnPrintFormat { X = 10; Y = 40; Width = 50; Height = 20; Title = "Print format"; Function OnTouch(e) { var item = new SmaPriInputItem[2]; item[0].FormatId = 1; item[0].PrintNum = 1; item[0].SetData("文字列1", "ABCD"); item[0].SetData("バーコード1", "hello world!"); item[1].FormatId = 2; item[1].PrintNum = 1; item[1].SetData("固定グラフィック", "http://192.168.1.15/image/sample.bmp"); item[1].SetData("切替グラフィック", "1"); var extended = new Array(); extended["print_operation"] = "1,3,3"; extended["print_offset"] = "50,50"; ^.sm.PrintFormat(item, extended); } } // { Function OnSmaPriPrinterConnectionChanged(e) { //.MessageBox("プリンタ接続状態変更:" + str(e.State) + " :" + e.Message); } Function OnSmaPriPrintFailed(e) { //.MessageBox("プリント失敗(" + e.JobName + "):" + e.Message); } Function OnSmaPriPrintFinished(e) { //.MessageBox("プリント完了(" + e.JobName + ")"); } } }
まず、SmaPriPrinter.SetPrinterメソッドでプリンタを指定し、SmaPriPrinter.Connectメソッドで接続します。SmaPriPrinter.SetPrinterメソッドの第三引数のプリンタ機種は、プリンタと一致させる必要があります。 SmaPriPrinter.SetPrinterメソッドで指定したプリンタ情報は保存され、次回のBiz/Browser起動時にも適用されます。IPアドレスとBluetoothアドレスは別々に保存されます。
Button btnSetPrinter { X = 10; Y = 10; Width = 50; Height = 20; Title = "SetPrinter"; Function OnTouch(e) { ^.sp.SetPrinter(SmaPriPrinter.DeviceTypeTcp, "192.168.1.15", SmaPriPrinter.ProtocolStatus4, false); } } Button btnConnect { X = 700; Y = 10; Width = 50; Height = 20; Title = "Connect to Printer"; Function OnTouch(e) { ^.sp.Connect(); } }
フォーマットファイルはSmaPri.RegisterFormatメソッドで読み込み、Android端末内に保存します。フォーマットファイルはWebサーバー上、もしくは端末内のファイルをURLで指定するか、バイナリデータをBase64形式にエンコードした文字列で指定します。
Button btnRegisterFormat { X = 10; Y = 40; Width = 50; Height = 20; Title = "Register format"; Function OnTouch(e) { ^.sm.RegisterFormat("http://192.168.1.15/format/sample.spfmtz"); } }
発行データはSmaPriInputItemクラスの配列として作成します。作成した発行データはSmaPri.PrintFormatメソッドに渡して印刷を実行します。印刷は発行データの配列のインデックス順で実行されます。
Button btnPrintFormat { X = 10; Y = 40; Width = 50; Height = 20; Title = "Print format"; Function OnTouch(e) { var item = new SmaPriInputItem[2]; item[0].FormatId = 1; item[0].PrintNum = 1; item[0].SetData("文字列1", "ABCD"); item[0].SetData("バーコード1", "hello world!"); item[1].FormatId = 2; item[1].PrintNum = 1; item[1].SetData("固定グラフィック", "http://192.168.1.15/image/sample.bmp"); item[1].SetData("切替グラフィック", "1"); var extended = new Array(); extended["print_operation"] = "1,3,3"; extended["print_offset"] = "50,50"; ^.sm.PrintFormat(item, extended); } }
Biz/Browser HTのメニューから、SmaPri機能の設定を行うことができます。
「プリンタ接続状態」によりプリンタに接続する操作はSmaPriPrinter.Connectメソッドを呼び出すことと同じで、CRSでも接続した状態になります。
プリンタのアドレスは、SmaPriPrinter.SetPrinterメソッドや、プリンタ設定画面で設定したプリンタのアドレスが表示されます。Bluetoothのデバイスを設定した場合はBluetoothアドレスが、ネットワーク上のプリンタを設定した場合はプリンタのIPアドレスが表示されます。
プリンタ設定画面では、SmaPriのプリンタに関する詳細設定を行うことができます。
番号 |
説明 |
---|---|
1.プリンタ機種
|
設定されているプリンタのプリンタ機種です。デフォルトはステータス4(1ポート接続)です。 SmaPriPrinter.SetPrinterメソッドの第三引数で指定した値となります。 接続するプリンタと一致させる必要があります。 |
2.Bluetooth接続を使用
|
Bluetoothプリンタを使用します。LAN設定とは排他となります。 SmaPriPrinter.SetPrinterメソッドの第一引数でBluetoothプリンタ(SmaPriPrinter.DeviceTypeBluetooth)を指定した場合はこのチェックが有効になります。 |
3.Bluetoothデバイス
|
Bluetoothプリンタを選択します。また、Bluetoothデバイスを検索し、ペアリングを行います。 タップすると、設定済みのデバイスとペアリング済みのデバイスが一覧表示され、選択したデバイスをプリンタとして設定します。「デバイスのスキャン」を選択するとBluetoothデバイスのスキャンを行います。
ここで設定したBluetoothデバイスは、CRS上でも有効になります。 |
4.デバイス名フィルタ
|
「3.Bluetoothデバイス」で表示するペアリング済みデバイスや検索結果のデバイスをフィルタリングするかどうかを設定します。 設定した文字列を含むデバイスだけを表示します。デフォルトはオフです。またデフォルトの検索文字列は「SATO」です。
SmaPriBluetooth.Discoverメソッドの結果には影響しません。 |
5.自動ペアリング
|
自動でペアリングを行うかどうか、およびペアリング時のPINコードを設定します。デフォルトはオフです。 この設定を有効にするとペアリング時(「3.Bluetoothデバイス」、およびSmaPriBluetooth.CreateBondメソッド呼び出し)に自動でPINコードを指定する他、Bluetoothプリンタとの接続(メニューからの接続、およびSmaPriPrinter.Connectメソッド呼び出し)時にもペアリングを実行します。 |
6.LAN接続を使用
|
ネットワーク上のプリンタを使用します。Bluetooth設定とは排他となります。 SmaPriPrinter.SetPrinterメソッドの第一引数でBluetoothプリンタ(SmaPriPrinter.DeviceTypeTcp)を指定した場合はこのチェックが有効になります。 |
7.IPアドレス
|
ネットワークプリンタのIPアドレスを表示、設定します。
ここで設定したIPアドレスは、CRS上でも有効になります。 |
8.TCPポート
|
ネットワークプリンタと接続する際のポート番号を表示、設定します。デフォルトは9100です。
ここで設定したポート番号は、CRS上でも有効になります。 |
9.Wi-Fi自動ON
|
プリンタへの接続時に自動でWi-FiをONにします。デフォルトはオフです。 メニューからの接続時、およびSmaPriPrinter.Connectメソッド呼び出し時両方で有効です。
Android 10以降ではOSの制限により機能は無効となります。 |
10.セッションの切断時間
|
接続後、および印刷後にプリンタとの接続を自動で切断にする時間を設定します。デフォルトは5分です。 「1発行指示毎」の場合、接続後は自動で切断されません。印刷実行後に切断されます。
|
11.切断時デバイスOFF時間
|
プリンタとの接続を切断した後、Wi-FiもしくはBluetoothをオフにするまでの時間を設定します。デフォルトは「しない」です。
Android 10以降ではOSの制限によりWi-Fiをオフにする機能は無効となります。 Biz/Browser HT1.3.3から、Android 13以降ではOSの制限によりBluetoothをオフにする機能は無効となります。 |
12.マルチアイテム送信
|
印刷時、印刷が終わるのを待たずに次の印刷を実行するかどうかを指定します。デフォルトはオフです。 |
13.伝送制御キャラクタ付加
|
印字データ送信時に伝送制御文字(STX,ETX)を自動で付加するかどうかを指定します。デフォルトはオンです。 「14.CRC有効」がオンの場合、この設定は必ず有効になります。 |
14.CRC有効
|
通信時のCRCチェックを有効にします。デフォルトはオフです。 CRCチェックを有効にすると、通信エラーで印字データが破損した場合に破損したデータを印字しなくなります。ただし、印字速度は遅くなります。 この設定はプリンタのCRCチェック機能と同じ設定にする必要があります。プリンタの設定方法はプリンタのマニュアルを参照してください。 |
15.プリンタ応答タイムアウト
|
プリンタ応答のタイムアウト時間をミリ秒単位で設定します。デフォルトは20000ミリ秒です。 |