通过 TCP Socket + ESC/POS 协议,向美团热敏打印机发送带格式的任务单/检查单。
> 推荐首选 Web 管理界面,浏览器操作更直观;不方便时再通过对话方式。
用户可通过浏览器管理所有打印机、定时任务和打印模板,无需终端操作。
启动方式:
python3 scripts/start_web_admin.py,Windows 执行 python scripts\start_web_admin.py启动后访问终端输出的地址,默认 http://localhost:5000;如果端口被占用,会自动选择 5001 起的可用端口。
功能:
> 💡 如果用户说"管理打印机"、"添加打印机"、"配置打印机"、"定时打印"、"打开管理界面"等,AI 应主动引导用户使用 Web 管理界面,或直接帮用户启动。
不方便打开浏览器时,AI 可直接通过对话完成打印机配置。
AI 直接与用户对话,按以下步骤收集信息并完成配置:
meituan-printer/
├── SKILL.md # 本文件(AI 指引)
├── scripts/
│ ├── print_to_printer.py # 核心打印脚本
│ ├── check_printer.py # 连通性检测工具(非交互式)
│ ├── web_admin.py # Web 管理界面后端(Flask + APScheduler)
│ ├── platform_utils.py # 跨平台工具层(macOS/Windows 兼容)
│ ├── start_web_admin.py # 跨平台 Web 后台启动入口
│ ├── config.json # 打印机配置
│ ├── tasks.json # 定时任务配置
│ └── templates/
│ ├── index.html # Web 管理界面前端
│ └── task_templates.json # 预设打印模板
├── references/
│ ├── printer-config.md # 打印机配置参考(IP/类型映射)
│ └── onboarding.md # 新手指南(面向用户)
└── config.json # 用户配置(运行时生成)
用户首次使用或需要添加/管理打印机时,通过对话完成配置,不需要用户运行任何脚本。
AI 直接与用户对话,按以下步骤收集信息并完成配置:
1. 询问基本信息
向用户提问(自然语言即可,不需要一次性问完):
192.168.3.172)9100,如果不是标准端口才需要用户说明> 💡 AI 可以根据 references/printer-config.md 中已有的信息主动提示,减少用户输入。
2. 连通性检测(AI 后台执行)
收集到 IP 和端口后,AI 在后台运行检测脚本:
python3 scripts/check_printer.py --ip <IP> --port <端口>
返回 JSON:{"reachable": true/false, "ip": "...", "port": ..., "error": null/"错误信息"}
根据结果告知用户:
reachable: true → "✅ 打印机连接成功"reachable: false → "⚠️ 无法连接,请确认 IP/端口和打印机电源"3. 写入配置
检测通过后,AI 直接将新打印机追加到 scripts/config.json:
{
"alias": "前厅",
"ip": "192.168.3.172",
"port": 9100,
"type": "前厅收银",
"remark": "梅林店"
}
config.json 完整格式:
{
"version": "1.0",
"printers": [...],
"created_at": "2026-04-24",
"updated_at": "2026-04-24"
}
> ⚠️ 如果别名已存在,AI 应提示用户并确认是否覆盖。
用户也可以通过对话请求:
python3 scripts/print_to_printer.py --name <别名> --title "<标题>" --content "<内容>"
按以下优先级确定目标打印机:
| 用户说法 | 对应参数 |
|---|---|
| --------- | --------- |
| "后厨"、"素菜"、"前厅" | --name 后厨 等 |
| "荤菜岗"、"素菜岗"、"前台" | --name <对应别名> |
| "IP 是 xxx" / "地址是 xxx" | --ip |
| 未指定 | 查 config.json;无配置则引导用户先通过对话配置 |
必须询问用户:
> "这个打印任务是定时任务还是一次性打印?"
> - 一次性:立即发送到打印机
> - 定时任务:记录下来,协助用户创建自动化(cron/任务计划程序)
\n 分隔-------HH:MM------- 格式"-------09:30-------\\n打卡拍照\\n解冻冻货"立即打印:调用 print_to_printer.py,捕获结果并告知用户
定时打印:
打印完成后,向用户反馈:
✅ 已发送至【后厨】(192.168.3.172:9100)
📄 标题:早班A任务单
⏰ 时间:2026-04-23 14:30
打印输出包含:
=python3(macOS/Linux 默认)或 python(Windows 默认)scripts/config.json(AI 直接读写,用户无需手动编辑)9100(美团热敏打印机标准端口,99% 适用)提供一个本地 Web 管理界面,用户可通过浏览器管理打印机和定时任务,无需终端操作。
macOS/Linux:python3 scripts/start_web_admin.py
Windows:python scripts\start_web_admin.py
启动入口会自动检测 Python 环境、安装依赖(flask, apscheduler),然后启动 Web 服务。
访问地址:终端输出的 http://localhost:<端口>,默认 5000;如果端口被占用,会自动选择 5001 起的可用端口。
支持三种频率:
定时任务默认在 Web 服务进程内调度(APScheduler)。支持导出为系统级定时任务:
~/Library/LaunchAgents/schtasks /create 注册到 Windows 任务计划程序导出后即使 Web 服务关闭,定时任务仍会按时执行。
共 3 个版本