Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AliEx系ラベルプリンター Phomemo P12を叩いてみる

AliEx系ラベルプリンター Phomemo P12を叩いてみる

soburi

May 11, 2023
Tweet

More Decks by soburi

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  16. デモ

    View Slide


  17. View Slide