Community编程与开发github.com

PT210 热敏打印机输出

在 macOS 上通过蓝牙将文本、Markdown 或 Excalidraw 场景打印到附近的 PT210 热敏打印机。

PT210 热敏打印机输出 是什么?

该技能使 AI 助手能够通过蓝牙将文本、Markdown 文档或 Excalidraw 场景输出到 PT210 热敏打印机。它通过一个可调用的脚本集合(`print.sh`)实现,这些脚本是完整仓库的一部分。技能需要 macOS、`uv` 工具链、开启蓝牙的 PT210 打印机(装有纸卷)以及调用应用的蓝牙权限。Markdown 和 Excalidraw 渲染还需要本地安装 Google Chrome。依赖首次安装时会联网,但渲染过程完全离线。打印前可通过 `preview` 命令生成 PNG 预览图,避免浪费纸张。技能支持纯文本(ASCII 使用内置字体加速,Unicode 包括韩文则使用位图)、Markdown(保留标题、列表、表格等格式)和 Excalidraw(使用官方本地渲染器,按纸张宽度等比缩放)。打印作业会附加虚线导引线和 20 毫米的撕纸边距,可通过参数调整。蓝牙传输完成后会返回 `transmitted`,但不保证纸张已实际输出,因此首次使用或测试新传输行为时需要人工确认。

兼容平台~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 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

在 PT210 上打印

通过完整克隆的仓库使用附带的辅助脚本。将 PRINT_SKILL_DIR 解析为本技能目录,然后调用:

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

需要 macOS、uv、一台已唤醒且装有纸卷的 PT210 打印机,以及调用应用的蓝牙权限。Markdown/Excalidraw 还需要本地安装 Google Chrome。首次安装依赖时会使用网络;渲染过程保持本地。请勿假定本技能文件夹在脱离仓库时能正常工作。

首次连接

bash "$PRINT_SKILL_DIR/scripts/print.sh" scan
bash "$PRINT_SKILL_DIR/scripts/print.sh" setup --address 扫描得到的UUID

macOS 通过机器特定的 UUID 识别 BLE 设备,而非经典蓝牙 MAC。设置过程会验证受支持的可写特征,并将选择保存到 ~/.config/pt210/printer.json。如果只发现一台唯一的 PT210,则无需 --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
  • 纯文本:通过 stdin 或 --file 输入。ASCII 使用内置字体快速打印;Unicode(包括韩文)使用位图文本。--mode raster 强制使用位图模式。
  • Markdown:.md/.markdown 文件自动检测;stdin 使用 --format markdown。保留请求的格式。标题、强调、列表、任务复选框、引用、代码、表格和链接会正确渲染。宽表格会转换为带标签的行。链接包含目标地址;图片显示替代文本占位符。原始 HTML 保持原样,外部资源被阻止。
  • Excalidraw:.excalidraw/.excalidraw.json 文件自动检测;stdin 或通用 JSON 使用 --format excalidraw。使用 build-excalidraw 构建一次(需要 npm)。使用保存的场景,而不是共享 URL、库、Obsidian 包装器或 PNG。不要从 Mermaid 重新生成已编辑的场景。官方本地渲染器保留几何形状,并按纸张宽度等比缩放。小文字警告需要通过预览检查;不要静默裁剪或重新排列。支持嵌入式 PNG/JPEG/WebP/GIF;远程嵌入和 SVG 图片会明确失败。Excalidraw 和 Markdown 始终使用位图模式。

预览从不访问蓝牙,且拒绝覆盖已有文件。Markdown/Excalidraw 预览使用与打印相同的选项。对于纯文本,使用 print --mode raster 以匹配预览;原生字体有所不同。每个作业末尾带有虚线导引线和 20 毫米的空白撕纸边距。通过 --tear-margin-mm 0..50 调整,或使用 --no-tear-line 省略导引线。默认高度限制为 2,400 点(含边距共 300 毫米);缩短大段输出,或为请求的长收据显式提高 --max-height。

投递与故障处理

等待进程完成。transmitted 表示蓝牙写入已完成,并非纸张输出的独立证明。首次设置或测试新传输行为时,需要人工确认纸张输出。本地锁防止作业重叠;不要绕过它。失败/中断的发送可能已部分打印:重试前检查纸张,切勿自动重新发送。

如果找不到打印机,请用户将其打开并靠近,同时断开手机上的打印机应用。当蓝牙被沙盒限制时,使用运行时认可的权限路径。蓝牙拒绝需要用户在 macOS 的“隐私与安全性”中手动操作;不要编辑 TCC 设置。仅支持经典蓝牙的变体需要其他已验证的传输方式;不要猜测串行端口或使用办公室/默认打印机。

如果输出损坏,--transport conservative 会在下一次授权作业中使用较小的数据包。打印机配置、锁定文件和渲染缓存属于本地运行时状态;切勿提交它们。完整的功能、设置和限制请参见仓库的 README。

相关技能