Slide 1

Slide 1 text

ALIEX系ラベルプリンター PHOMEMO P12を叩いてみる 某F社 常田 裕士

Slide 2

Slide 2 text

自己紹介 • 常田 裕士 • F社の方から来ました。 • 昔ガラケー、今カーナビ • 最近はCQ出版さんところで色々書かせてもらってます • KiCad7の記事(トランジスタ技術 2023年2月号) • PythonのC/C++拡張の話(インターフェース 2021年6月号)

Slide 3

Slide 3 text

PHOMEMO P12 • 要は「テプラ」みたいなやつ • 今Amazonで買うとAliExで買う よりも安い。 • 最近の家庭向けラベルプリン タらしくスマホアプリからBTで つないで使う。 • テープはDYMOというアメリカ のメーカーの互換

Slide 4

Slide 4 text

怪レい日本語 • ベイク処理? • もしかして: ベーカリー • しょくひん • もしかしなくても: 食品 • 非言語なので問題なし?

Slide 5

Slide 5 text

やりたいこと • コマンドラインから簡単に印刷したい。 • Excelからコピペしたりする場合に便利。 • 可愛いスタンプは諦めるが、絵文字ぐらいは出したい。 • PC連携機能は国内メーカーだと、ビジネス向けの高級機には搭載されてい る。 • が、高い。

Slide 6

Slide 6 text

WIRESHARK • ネットワーク屋さんの友。 • 通信のデータを覗いて解析する。 • Androidを開発者モードにすると、 BTの機器と通信しているのが見える。

Slide 7

Slide 7 text

解析 • とりあえず白紙のデータを流す。 • 長い白紙のデータを流す。 • 0がいっぱい増えた! • キャプチャしたデータの0のところを1にして送ってみる。 • 黒くなった! • ゼロイチの繰り返しだと?

Slide 8

Slide 8 text

先頭にヘッダらしきもの があって、あとはゼロ

Slide 9

Slide 9 text

出力を1mにしたら ゼロがたくさん増えた!

Slide 10

Slide 10 text

わかったこと • 横96ドットのプリンタである。 • 端の8ドットぐらいは印刷に使えない。実効88ドット。 • モノクロの画像データ送ればそのまま出てくる。 • 単純に96ドット幅の絵を作れば何とでもなる。

Slide 11

Slide 11 text

ツールを作る • 解析結果から、フォントを並べて画像が作れればOKっぽい。 • Linux方面の人なので、とりあえずコマンドラインで使いたい。 • ちゃんと標準入出力でデータ処理できると嬉しい。 • インストールも楽にやりたい。 • Pythonで作ってpypiに置いてpipでインストールできるようにしておく。

Slide 12

Slide 12 text

印刷ツール • 基本的に絵を96ドットでカットして、そのまま吐き出すだけ。 • 通信のお決まりの部分はWireSharkでキャプチャしたまま。 • →よくわからないけど動くからヨシ!

Slide 13

Slide 13 text

印刷データ作成プログラム • Pythonで作った。 • マルチプラットフォームで使える描画システムのCairoを使ってフォントを描 画する。 • 端の印刷不可領域を考慮してデータを出力する。 • 見切れるときがあるので、調整はできるようにしておく。 • pbmの形式で出力すると、コンソールで印刷イメージが見れて便利。

Slide 14

Slide 14 text

PBM • 文字通りの0と1でモノクロ データを表現する画像形 式。 • テキストなので、コンソー ルに間違って流してもBeep 音とか鳴らないし、コン ソールがぐちゃぐちゃにな らない。

Slide 15

Slide 15 text

使い方 • pip3 install phomemo-p12-tools • phomemo_render_label “Hello World!” | phomemo_print_p12 –port COM1

Slide 16

Slide 16 text

デモ

Slide 17

Slide 17 text