IoT企業社内便利ツール② ラベルプリンターをIoT化する / Akerun Advent Calendar 13日目
この記事はAkerun Advent Calendar 13日目の記事です。
今回はフォトシンスCTOの@kazuphが担当しますよ( ・`д・´)b
今日は以前のbuildersconでも少し取り上げたラベルシールプリンターをIoT化した話です!
目的
社内での出荷作業の一部で二次元QRコードのシールを同梱したり、製品に貼ったりすることがあるので、そのQRコードを生成してます。 業者に依頼することもできるのですが、センシティブな情報も含むことがあるので、全部自社内でやっています。
ラベルプリンターを用意する
ブラザー工業 PCラベルプリンター P-touch P750W PT-P750W
- 出版社/メーカー: ブラザー
- 発売日: 2014/08/01
- メディア: Personal Computers
- この商品を含むブログを見る
要件的にこれで良かったので、これにしました。もっと高価でシールの解像度が高いものもあります。
SDKを確認する
幾つか操作方法があります。
今回は「アプリケーション開発ツール b-PAC(Brother P-touch Applicable Component)」というものを使用しました。
b-PAC (Brother P-touch Applicable Component)は、弊社P-touch(ピータッチ)シリーズのハードウェアに出力するコンポーネントです。 専用エディターを使用することなく、Microsoft® Visual Basic® 、Microsoft® Excel® 、VB Script等で作成されたお客様のシステムから簡単に出力できます。(プログラマーはラベルテンプレートファイルを作成するために専用エディターの操作を覚える必要がありますが、開発されたプログラムを使用し、実務にてラベル出力を行う方は、専用エディターの操作を覚える必要はありません。)
う、MS、、、VB、、、となったのですが、
もっと調べるとちゃんとJSでも使えました。
Jscript (for Internet Explorer®)
(Jscript、、、なにそれ?)
心の声はさておき、どうやらInternet Explorerでなら、JSでSDKが動く!ということがわかりました。
印刷用サンプルスクリプト
SDK(bpac.Document)とテンプレ(qr.lbx)を指定して印刷を実行してます。
function printLabel() { var bpac = new ActiveXObject("bpac.Document"); var lbxPath = "C:\\templates\\qr.lbx"; var code = $("#code").data("code"); if (bpac.Open(lbxPath) != false) { bpac.GetObject("code").Text = code; bpac.StartPrint("", 0); bpac.PrintOut(1, 0); bpac.Close(); bpac.EndPrint(); } else { console.log("fail..."); } }
うん、普通にJSですね。
SDKをインストールする
このままだと動かないので、SDKをインストールして、テンプレも指定のパスに設置します。
https://online.brother.co.jp/dev/Top.aspx
SDKをインストールするためにここで新規登録を行います。
ログインできたら「Windows用開発ツール」ページにて必要物をダウンロードします。
・b-PAC SDK (64bit版) ・b-PAC クライアント用コンポーネント (64bit版)
bitは適切な方を選んでください。ダウンロードしたらインストールします。
あ、当然ですが、Windowsでしか実行できません。僕はPallarelsにて実施しました。
印刷用テンプレを準備する
ソフトウェアダウンロード | PT-P750W | 日本 | ブラザー
ここからエディタツールをダウンロードしてください。 もちろんドライバーがまだならそれも。
このツールで自由にレイアウトしたシールを作成できます。
実行
実行環境: Windows 10 IE 11
とりあえずこれでブラウザからの印刷ができるようになりました。
※ブラウザから自動で実行する場合は、IEの設定からセキュリティを落とす必要があるかもしれません。
IoTにする部分
ブラウザで実行できたということは、あとはトリガーを入れるだけです。 この辺は別途サーバーとWebSockedで繋いだり、単にAjaxするなど、色々な方法があるので、各々適切な方法を選んでください(あとは丸投げ)。
まとめ
ということで、こんな感じでラベルプリントもよりWebっぽくIoT化できる方法を紹介しました。
Akerunをつくっている株式会社フォトシンスでは、APIやWebツールを一緒に盛り上げてくれるRailsエンジニアを募集しています! www.wantedly.com
Akerun Developersサイトもやってます。Akerun APIについては、こちらをご覧ください。 photosynth-inc.github.io