ALIEX系ラベルプリンターPHOMEMO P12を叩いてみる某F社 常田 裕士
View Slide
自己紹介• 常田 裕士• F社の方から来ました。• 昔ガラケー、今カーナビ• 最近はCQ出版さんところで色々書かせてもらってます• KiCad7の記事(トランジスタ技術 2023年2月号)• PythonのC/C++拡張の話(インターフェース 2021年6月号)
PHOMEMO P12• 要は「テプラ」みたいなやつ• 今Amazonで買うとAliExで買うよりも安い。• 最近の家庭向けラベルプリンタらしくスマホアプリからBTでつないで使う。• テープはDYMOというアメリカのメーカーの互換
怪レい日本語• ベイク処理?• もしかして: ベーカリー• しょくひん• もしかしなくても: 食品• 非言語なので問題なし?
やりたいこと• コマンドラインから簡単に印刷したい。• Excelからコピペしたりする場合に便利。• 可愛いスタンプは諦めるが、絵文字ぐらいは出したい。• PC連携機能は国内メーカーだと、ビジネス向けの高級機には搭載されている。• が、高い。
WIRESHARK• ネットワーク屋さんの友。• 通信のデータを覗いて解析する。• Androidを開発者モードにすると、BTの機器と通信しているのが見える。
解析• とりあえず白紙のデータを流す。• 長い白紙のデータを流す。• 0がいっぱい増えた!• キャプチャしたデータの0のところを1にして送ってみる。• 黒くなった!• ゼロイチの繰り返しだと?
先頭にヘッダらしきものがあって、あとはゼロ
出力を1mにしたらゼロがたくさん増えた!
わかったこと• 横96ドットのプリンタである。• 端の8ドットぐらいは印刷に使えない。実効88ドット。• モノクロの画像データ送ればそのまま出てくる。• 単純に96ドット幅の絵を作れば何とでもなる。
ツールを作る• 解析結果から、フォントを並べて画像が作れればOKっぽい。• Linux方面の人なので、とりあえずコマンドラインで使いたい。• ちゃんと標準入出力でデータ処理できると嬉しい。• インストールも楽にやりたい。• Pythonで作ってpypiに置いてpipでインストールできるようにしておく。
印刷ツール• 基本的に絵を96ドットでカットして、そのまま吐き出すだけ。• 通信のお決まりの部分はWireSharkでキャプチャしたまま。• →よくわからないけど動くからヨシ!
印刷データ作成プログラム• Pythonで作った。• マルチプラットフォームで使える描画システムのCairoを使ってフォントを描画する。• 端の印刷不可領域を考慮してデータを出力する。• 見切れるときがあるので、調整はできるようにしておく。• pbmの形式で出力すると、コンソールで印刷イメージが見れて便利。
PBM• 文字通りの0と1でモノクロデータを表現する画像形式。• テキストなので、コンソールに間違って流してもBeep音とか鳴らないし、コンソールがぐちゃぐちゃにならない。
使い方• pip3 install phomemo-p12-tools• phomemo_render_label “Hello World!” | phomemo_print_p12 –port COM1
デモ
終