# phomemo-layout > Phomemo M02 Pro向けのレイアウトJSONの生成・修正・検証・プレビュー/印刷を扱う。576px固定幅、長尺はY方向で確保、回転/分割送信などの制約を踏まえて設計する依頼、天気/ToDo/定規などの印刷テンプレを作る依頼、dry_runでプレビューしてから印刷する依頼で使う。 - Author: masato - Repository: Tomatio13/phomemo-printer-skill - Version: 20251228233206 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/Tomatio13/phomemo-printer-skill - Web: https://mule.run/skillshub/@@Tomatio13/phomemo-printer-skill~phomemo-layout:20251228233206 --- --- name: phomemo-layout description: Phomemo M02 Pro向けのレイアウトJSONの生成・修正・検証・プレビュー/印刷を扱う。576px固定幅、長尺はY方向で確保、回転/分割送信などの制約を踏まえて設計する依頼、天気/ToDo/定規などの印刷テンプレを作る依頼、dry_runでプレビューしてから印刷する依頼で使う。 --- # Phomemo Layout Skill ## 目的 Phomemo M02 Pro向けのレイアウトJSONを、仕様とスキーマに沿って生成・検証し、プレビュー/印刷まで実行する。 ## 参照 - `references/printer-spec.md` - `references/layout_job.schema.json` - `references/layout.sample.json` - `references/workflow.md` ## 手順 1) `references/printer-spec.md` と `references/layout_job.schema.json` を読む。 2) `references/layout.sample.json` を参考に、JSONのみを出力する(このスキルの `outputs/` 配下に置く)。 3) 依存を準備する(venv + pip)。 4) `scripts/validate_layout.py` で検証する。 5) `scripts/render_layout.py --dry-run` でプレビューする。 6) 印刷が必要なら `scripts/render_layout.py --print` を使う。 ## 使い分けの目安 - 天気: 日付/天候/気温/降水確率の見やすさを優先し、余白と行間を広めにする。 - ToDo: 箇条書きの可読性を優先し、文字サイズと行間を固定する。 - 定規: 物理長の精度を優先し、Y方向に必要pxを確保する。 ## 注意 - 依存管理は `requirements.txt` を使用する。 - 初回セットアップ例: `python3 -m venv .venv` → `source .venv/bin/activate` → `pip install -r requirements.txt` - 実行例: `PYTHONPATH=src python scripts/validate_layout.py ` - スクリプト実行時は `PYTHONPATH=src` を設定する(技能フォルダ内に `src/` があれば不要)。 - `.env` は **このスキルの作業ディレクトリ** に置く(実行時のカレントから探索されるため)。 - `.env` サンプル: - `PHOMEMO_PRINTER_ADDRESS=B5:4B:B4:78:7B:C4` - `PHOMEMO_PRINTER_CHANNEL=1` - JSON/PNG の出力先は、このスキルの `outputs/` 配下に統一する(実行環境に合わせてパスは解釈される)。 - 印刷失敗時は `render_layout.py` が非ゼロ終了し、`stderr` にエラーを出力しつつ、`info.error` を含むJSONを標準出力へ返す。 - 出力はJSONのみ。説明文やコードブロックは入れない。 - 576px固定幅。長尺はY方向で確保する。 - `output.send_to_printer` と `--print` の両方を満たさないと印刷されない。 - `dry_run` の既定はプレビューのみなので、印刷時は明示的に `--print` を使う。 - `canvas.font_path` は存在するパスのみを指定する。