Communityコーディング&開発github.com

Print (PT210 プリンタ)

近くの PT210 Bluetooth サーマルプリンタに、テキスト、Markdown、Excalidraw シーンを macOS から印刷します。

Print (PT210 プリンタ) とは?

このスキルは、macOS 上で PT210 Bluetooth サーマルプリンタに印刷するための機能を提供します。テキスト、Markdown、Excalidraw 形式のコンテンツをサポートし、`uv`、`npm`、Google Chrome(Markdown/Excalidraw 用)などの依存関係を自動的に管理します。初回セットアップではスキャンと接続を行い、以降は `preview` コマンドでレイアウトを確認してから `print` コマンドで出力できます。Bluetooth 転送の完了を保証するため、紙の出力確認が推奨されます。プリンタが見つからない場合や Bluetooth 拒否が発生した場合は、ユーザーに macOS のプライバシー設定を確認するよう促します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/guzus/pt-210/tree/HEAD/skills/print

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

PT210 で印刷する

完全なクローン済みリポジトリからバンドルされたヘルパーを使用します。 PRINT_SKILL_DIR をこのスキルのディレクトリに解決し、以下を実行します:

bash "$PRINT_SKILL_DIR/scripts/print.sh" --help

動作条件:macOS、uv、起動状態の PT210 と用紙、および呼び出し元アプリへの Bluetooth 権限。Markdown/Excalidraw にはローカルにインストールされた Google Chrome が必要です。初回依存関係のインストールにはネットワークを使用しますが、レンダリング自体はローカルで行われます。このスキルフォルダはリポジトリなしでコピーしても動作しないことに注意してください。

一度接続する

bash "$PRINT_SKILL_DIR/scripts/print.sh" scan
bash "$PRINT_SKILL_DIR/scripts/print.sh" setup --address UUID_FROM_SCAN

macOS は BLE デバイスを従来の Bluetooth MAC ではなく、マシン固有の UUID で識別します。セットアップでは、サポートされている書き込み可能な特性を確認し、選択内容を ~/.config/pt210/printer.json に保存します。一意に発見された PT210 が 1 台の場合は --address なしで選択できます。複数該当する場合は意図したデバイスを解決してください。保存されたデバイスがない場合、他のプリンタにフォールバックすることはありません。--address は PT210_ADDRESS よりも優先され、次に保存された選択肢よりも優先されます。inspect は印刷せずに接続します。

準備、プレビュー、印刷

要求されたコンテンツをそのまま使用します。印刷要求はその紙への出力を許可します。冗長な確認ゲートは追加しないでください。見慣れないレイアウトは最初にプレビューしてください。

bash "$PRINT_SKILL_DIR/scripts/print.sh" preview --file /tmp/note.md --output /tmp/note-preview.png
bash "$PRINT_SKILL_DIR/scripts/print.sh" print --file /tmp/note.md
  • プレーンテキスト:標準入力または --file。ASCII は内蔵フォントですばやく印刷されます。韓国語を含む Unicode はビットマップテキストを使用します。--mode raster で強制的にビットマップになります。
  • Markdown:.md / .markdown が自動検出されます。標準入力の場合は --format markdown を使用します。書式設定はそのまま保持されます。見出し、強調、リスト、タスクチェックボックス、引用、コード、表、リンクがレンダリングされます。幅の広い表はラベル付きの行になります。リンクには宛先が含まれます。画像は代替テキストのプレースホルダーになります。生の HTML はそのまま表示され、外部リソースはブロックされます。
  • Excalidraw:.excalidraw / .excalidraw.json が自動検出されます。標準入力または汎用 JSON の場合は --format excalidraw を使用します。build-excalidraw(npm が必要)で一度ビルドします。保存されたシーンを使用し、共有 URL、ライブラリ、Obsidian ラッパー、PNG は使用しません。Mermaid から編集されたシーンを再生成しないでください。公式のローカルレンダラーはジオメトリを保持し、用紙幅に比例して拡大縮小します。小さなテキストの警告はプレビューで確認する必要があります。サイレントに切り取ったり並べ替えたりしないでください。埋め込まれた PNG / JPEG / WebP / GIF はサポートされます。リモート埋め込みと SVG 画像は明示的に失敗します。Excalidraw と Markdown は常にラスターモードを使用します。

プレビューは Bluetooth にアクセスせず、既存のファイルの上書きを拒否します。Markdown/Excalidraw のプレビューは、同一オプションでの印刷と一致します。プレーンテキストの場合は、プレビューに合わせるために print --mode raster を使用してください。ネイティブフォントは異なります。すべてのジョブは破線のガイドと 20 mm の空白切り取りマージンで終了します。--tear-margin-mm 0..50 で調整するか、--no-tear-line でガイドを省略します。デフォルトの高さ制限は 2,400 ドット(マージン含めて 300 mm)です。大きい出力を短くするか、要求された長いレシートのために --max-height を明示的に上げてください。

配信と障害

プロセスが終了するのを待ちます。transmitted は Bluetooth の書き込みが完了したことを意味し、紙への出力が独立して確認されたわけではありません。初期設定または新しいトランスポート動作の場合は、紙の出力確認を取得してください。ローカルロックにより重複ジョブを防ぎます。これをバイパスしないでください。送信の失敗や中断により部分的に印刷される可能性があります。再試行する前に紙を検査し、自動的に再送信しないでください。

プリンタが見つからない場合は、ユーザーに近くで電源を入れ、電話のプリンタアプリを切断するよう依頼してください。Bluetooth がサンドボックス化されている場合は、ランタイムの承認済み権限パスを使用します。Bluetooth 拒否には macOS のプライバシーとセキュリティ設定でのユーザー操作が必要です。TCC 設定を編集しないでください。Classic-Bluetooth のみのバリアントには、別の検証済みトランスポートが必要です。シリアルポートを推測したり、オフィス/デフォルトプリンタを使用しないでください。

出力が破損している場合は、--transport conservative を使用して次回の承認済みジョブに小さなパケットを使用します。プリンタ設定、ロックファイル、レンダリングキャッシュはローカルランタイム状態です。これらをコミットしないでください。完全な機能、セットアップ、制限については、リポジトリの README を参照してください。

関連スキル