厨房与餐厅打印
门店的所有实体打印都通过 Cenaly Hardware Bridge 完成——这是运行在连接打印机的收银设备上的一个小程序。浏览器不会直接向热敏打印机打印:它把文档发送给网桥,由网桥用 ESC/POS 语言与硬件通信。
通过网桥打印的内容包括:按档口的厨房小票、项目贴纸和包装袋贴纸、销售和退货收据、预结账单、X 和 Z 报表,以及取餐屏上的包装袋清单。
按档口的厨房小票#
小票应送到菜品制作的地方:冷菜间用自己的打印机,烧烤区用自己的,酒吧用自己的。
设置位于 厨房 (KDS) → “档口”面板,其中的“档口 → 打印机”表格。每个档口可设置:
| 字段 | 含义 |
|---|---|
| 打印机 | 网桥中的具体设备;留空则打印到角色为“厨房”的打印机 |
| 备用打印机 | 主打印机无响应时小票转去的设备 |
| 由谁打印 | 关闭、收银 或 KDS |
| 纸带宽度 | 42 个字符(80 mm 纸带)或 32 个(58 mm) |
| 代码页 | 见下文 |
| 项目贴纸 | 在小票转为“已完成”时打印标签 |
打印机列表从本地网桥获取,因此必须在打印机实际连接的机器上配置档口。
小票包含的内容。 大号字体(厨师隔着操作台也能看清纸单)、菜品名称、数量、菜品下方单独一行的配料选项、备注(“不要洋葱”)、客人号码和上菜顺序(如果订单按此拆分)。厨房小票中没有价格和合计。
只打印新增内容。 服务员重复点击不会打印第二张小票:系统会记住哪些行已发送到档口。如果添加了项目或修改了数量,会发送加菜小票,而不是整单的完整副本。
项目贴纸和包装袋贴纸#
贴在杯子和包装盒上的 60×40 mm 标签解决了取餐环节的两个问题:包装袋不再在骑手之间混淆,客人也能在杯子上看到牛奶确实是无乳糖的——配料选项不再只留在厨房小票上。
- 项目贴纸——在档口开启相应设置时,于小票转为“已完成”时打印;
- 包装袋贴纸——在取餐环节打印:屏幕会询问包装袋数量并打印“包装袋 1/3”、“2/3”等;
- 包装袋清单——放在包装袋内的纸单,列明订单完整组成,包括单独成行的配料选项:骑手和客人据此核对完整性,与聚合平台的“少送项目”纠纷也有了纸质凭据。按钮位于 取餐 (Expo) 屏幕。
贴纸由角色为“标签打印机”的设备打印;如果网桥上没有该角色,标签会发送到普通收据打印机。
收银单据#
| 单据 | 通过网桥 | 备注 |
|---|---|---|
| 销售 / 退货收据 | 是 | 回退方案——用浏览器打印 |
| 预结账单(客人账单) | 是 | 非税控,纸面上有明确标注 |
| X 和 Z 报表 | 是 | 见 现金班次 |
| 包装袋清单 | 是 | 取餐 (Expo) 屏幕 |
| 厨房小票、贴纸 | 是 | 无浏览器回退方案 |
已打印收据的重打始终会记入危险操作日志;只有开启了“PIN 下重打”的岗位才会要求输入经理 PIN——见 损耗控制。
税控收据是另一回事:它由税控机打印并受所在国家法律约束,见 税控化。
打印队列与结果含义#
网桥具有支持重启的带重试队列:如果打印机离线,任务不会丢失,而是等待并重试。队列指示器显示在收银界面顶部。
卡住的任务可以取消。 厨房的经典问题:打印机卡纸,修了半小时,重新开机时吐出五十张过期的工单。在收银界面顶部的队列中,任务可以逐个取消:网桥标记为“已取消”,当打印机恢复时直接跳过该任务。如果任务已经进入打印,取消会如实告知——这种情况下纸张仍会输出。
“取消”按钮仅对卡住的任务可用——即等待打印机超过三分钟的任务。新任务会显示为一行,但无法取消,这是有意为之:短暂的停顿(打印机唤醒、线缆被碰)属于正常情况,网桥会自行补打,而在这类任务旁放置按钮意味着可能丢失收据。
打印结果有四种,对收银员来说含义各不相同:
| 结果 | 发生了什么 |
|---|---|
| 已打印 | 网桥确认了物理打印 |
| 排队中 | 网桥已接收任务,但打印机不可用——客人未拿到收据 |
| 通过浏览器 | 没有网桥或网桥未接收文档,打印通过浏览器对话框进行 |
| 未打印 | 完全无法打印 |
结果为“排队中”时,浏览器回退不会启动——否则同一张收据会打印两次。
任务具有幂等性:重复发送同一文档不会产生第二张纸。
代码页与非拉丁字符#
热敏打印机不认识 UTF-8:它按照所选单字节表中的每个字节绘制一个字形。因此代码页是针对每台已配置的打印机单独设置的:
| 值 | 作用 |
|---|---|
auto(默认) |
检测到西里尔字母——将打印头切换为 CP1251;拉丁字母和拉丁扩展字符(土耳其语、波兰语、阿尔巴尼亚语)保持不变 |
cp1251 / cp866 |
显式选择西里尔表——廉价打印头通常只支持其中一种 |
georgian-academy / georgian-ps / georgian-expert |
格鲁吉亚设备的字体 ROM 布局 |
utf8 |
历史行为:任何非拉丁字符都会变成乱码 |
关于格鲁吉亚语,如实说明。 具体打印头“理解”哪张表是物理设备的属性,协议规范中并无规定;因此表是按设备选择的。ESC/POS 标准中根本没有格鲁吉亚代码页,所以以前“ხინკალი”会被罗马化为 khinkali:能读,但点的不是这个。
现在,打印头无法打印的字符串,网桥会绘制成图片——使用内置字体的位图打印,适用于任何打印机,不依赖其 ROM。内置字体涵盖拉丁字母和拉丁扩展字符、希腊语、西里尔字母、亚美尼亚语以及全部三种格鲁吉亚字形(姆赫德鲁利、姆塔夫鲁利、阿索姆塔夫鲁利)。在文本以常规方式打印的地方,一切不变——仅在必要时启用位图。
该行为由每台设备的**“非拉丁字符使用位图”**复选框控制(默认开启,网桥页面和云端“硬件”部分均有)。取消勾选则恢复原来的罗马化:这是为少数不支持位图打印的打印头准备的。
象形文字(中文、日文、韩文)、希伯来文和阿拉伯文有意未纳入字体:对于从右到左的文字,字符串会反向输出,这比目前的结果更糟。厨房的工位面板会如实显示字符串的处理方式:“将作为图片输出”或“既无表也无字体”。
土耳其语、波兰语和阿尔巴尼亚语的拉丁字符有意不经过 CP1251:否则 ş、ğ、ą 会变成 ?。
启动所需条件#
- 收银电脑上的网桥——Cenaly Hardware Bridge。所有物理打印都通过它进行。
- 连接到同一台电脑的打印机——USB、LAN 或 Bluetooth;网桥会自动发现设备。
- “工位 → 打印机”映射——否则工单无处路由。
- 合适规格的纸卷,用于项目和包裹贴纸。
- 菜品上的工位——工单按项目工位生成(KDS)。
限制#
- 网桥只能从所在电脑打印。 浏览器无法访问相邻电脑上的网桥:请在每台收银设备上安装网桥,或使用云端打印到另一台电脑的打印机。
- TSPL/ZPL 标签打印机未在真实硬件上验证——目前标签以位图方式在收据打印机上打印。
- 纸带宽度由设备决定。 它取自打印机设置,否则取自税控机型号,否则按安全值处理;80 mm 的文档宽度不会套用到税控机,因为税控机不换行,而是连同金额一起截断。
- 预结账单不会留在队列中。 如果收据打印机已配置但离线,客人账单会在税控机上打印:纸张现在就需要,而一小时后在已付款订单上补一份副本就是第二张纸。销售收据的行为不同——它会等待重试。
- 预结账单不会发送到厨房打印机——对于客人账单,此类打印机视为不适用,任务会转到收银机。
故障排除#
小票未打印。 检查网桥状态:如果它离线,任务会留在打印队列中,待与其恢复连接后发出——队列可跨重启保留。
打印到了错误的打印机。 该工位未指定自己的打印机,解析器选择了“任意可用”。请显式配置工位映射。
字母变成了乱码或空方块。 这是打印机代码页的问题:启用位图字体——它以图像方式绘制文本,可打印任何语言。
金额右侧被截断。 设置的纸带宽度过大:请在设备选项中填写实际宽度。
标签尺寸异常。 检查卷纸格式,并确认打印发送到标签打印机而非收据打印机(目前收据打印机上的标签以位图方式打印)。
相关章节#
- Cenaly Hardware Bridge — 网桥安装、设备列表、打印机角色
- 厨房 (KDS) — 工位、出餐顺序和打印设置
- 收银 (POS) — 收据、预结账单、重打
- 出餐 (Expo) — 包材清单和标签
- 现金班次 — X 和 Z 报表
- 损耗控制 — 重打作为风险事件
常见问题#
小票打印了两次——为什么?#
很可能该工位同时启用了收银和 KDS 打印。这是两台不同的设备、两个网桥,各自打印了一份。请在“谁打印”字段中只保留一个值。
打印机被断开——订单会丢失吗?#
不会。任务会进入网桥队列,待打印机恢复后打印。但在排队期间,物理上并没有纸张——界面会明确提示这一点。
可以不用网桥打印到厨房吗?#
厨房小票和标签——不可以,它们只能通过网桥。收银单据有浏览器回退方案:通过普通打印对话框打印。例外情况是硬件中只有税控机的门店:那里收据由收银机本身打印,浏览器回退不会启用。
为什么打印机列表是空的?#
列表来自本设备上的网桥。如果网桥未启动,或打印机连接在另一台机器上,设备就不会出现——请从打印机实际连接的机器上配置该工位。
包材清单中会打印修饰符吗?#
会。厨房小票、项目标签和包材清单使用同一种行格式组装:菜品名称,其下修饰符各占一行,以及备注。这样同一订单的三张纸看起来一致,便于人工核对。