跳到正文

指南

所属分组: 小票打印

设置爱普生小票打印机(小票与标志)

借助 Epson Server Direct Print 或 Star CloudPRNT,小票打印机会用 ID 和密码通过 HTTPS 自行从我们的服务器获取小票——无需端口转发,吧台也无需电脑。本指南从选择合适的打印机讲到打印第一张带俱乐部标志的小票。此外还介绍把订单小票分送厨房和吧台的打印路由、订单显示屏以及出现问题时的处理方法。带切纸刀的实惠 ESC/POS 小票打印机可通过小型打印代理接入——经 USB 或网络,以 Docker 容器运行,例如在 Raspberry Pi 上。

阅读约 9 分钟

首先:需要了解的事项

  • 打印机每隔几秒询问一次我们的服务器。因此小票会有几秒钟的延迟,具体取决于设置的间隔。
  • 获取地址中包含一个密钥。知道它的人就能收到这台打印机的小票。请勿外传;如有疑问,请生成新地址。
  • 适用型号列表来自 Epson 的官方文档。较早的 TM-i 和 TM-DT 设备通常也支持 Server Direct Print,但需要达到一定的固件版本。

您需要准备

  • 一台支持 Server Direct Print 且可联网(LAN 或 Wi-Fi)的爱普生小票打印机,例如 TM-m30III, TM-m30II-H/-NT/-S/-SL, TM-m50/TM-m50II, TM-T88VII, TM-T88VI, TM-L100, TM-H6000V, TM-T70II-DT2, TM-T88VI-DT2。
  • 打印机可以访问互联网——普通路由器即可,无需端口转发。
  • 与打印机匹配的 80 或 58 毫米热敏纸。 小票打印机和订单显示屏只能在这里设置,不能在 WebApp 或 App 的管理区中设置。
  • 在 /admin 管理后台中拥有俱乐部所有者或管理员账号。

在 /admin 中添加打印机

  1. 打开 /admin,在左侧选择清单,然后进入「运营」→「小票打印机」。
  2. 点击「添加小票打印机」并输入名称,例如「吧台」。
  3. 在「清单」中选择清单(留空表示所有清单),在「纸张宽度」中选择 80 mm 或 58 mm。
  4. 在「这台打印机打印什么?」中勾选自动打印的内容:「收银小票」、「Z 报表」和「订单小票」——详见下方「打印路由」一节。不勾选时,打印机只打印测试页和明确选择的小票。
  5. 点击「保存」。对话框保持打开,显示获取地址、「ID(用户名)」和密码——密码仅此时可见,请用「复制密码」复制。「新地址」和「新密码」会使旧的失效。

在打印机上设置

  1. 查找打印机的 IP 地址:在打印机关机状态下按住进纸键(FEED)并开机——状态页上会显示 IP 地址。
  2. 在同一网络中的电脑浏览器里打开 http://IP地址——这是打印机的网页配置界面(Web Config,较旧设备为 EpsonNet Config)。进入「Advanced Settings」→「Administrator Login」并登录:较新型号的密码是打印机的序列号(如需用户名,填「epson」)。TM-i 和 TM-DT 型号的路径相同。
  3. 请先更新打印机的根证书:我们的服务器使用 Let's Encrypt 证书(证书链 YR1 → ISRG Root YR → ISRG Root X1)。打印机中较旧的证书列表不认识它——这时 https:// 会静默失败,我们收不到任何请求。打开「Advanced Settings」→「Network Security」→「Root Certificate Update」,点击「Update」;打印机会从 Epson 下载最新列表。也可以在「Network Security」→「CA Certificate」中导入来自 letsencrypt.org/certificates 的 PEM 文件「ISRG Root X1」和「ISRG Root YR」。
  4. 打开「TMI Settings」→「Server Direct Print」,将「Server Direct Print」(Epson 手册中为「Use Server Direct Print」)设为「Enable」。
  5. 在「URL」中填写复制的获取地址,「Interval」填 5 秒,在「ID」和「Password」字段中填写 /admin 中的用户名和密码。打印机按 Epson 手册所述以 HTTP Digest 方式登录;我们的服务器同时接受 Digest 和 Basic。凭据不匹配时服务器返回「401」,打印机收不到任何小票。少于 5 秒没有意义:我们的服务器每台打印机最多每 400 毫秒接受一次请求。
  6. 点击「Apply」,然后在「TM-i Settings」(地址 /webconfig-i)中点击「Apply & Restart」——只有这样打印机才会应用 Server Direct Print 并重启。之后请用「Administrator Logout」退出:只要有人以管理员身份登录,打印机就处于配置模式,不会打印任何内容。
  7. 在 /admin 中点击打印机所在行的「测试打印」。测试小票会在下一次获取时到达——也就是最多约 5 秒后——「状态」列显示「最后连接」及时间。

另一种选择:使用 CloudPRNT 的 Star 打印机

  1. 除了 Epson,也可以使用支持 CloudPRNT 的 Star 小票打印机,例如 TSP143IV、TSP100IV、mC-Print3 或 mC-Print2。添加时选择「Star CloudPRNT(打印机自行获取小票)」。
  2. 打开 Star 打印机的网页界面(IP 地址见自检打印),以管理员身份登录。
  3. 启用 CloudPRNT,在「Server URL」中填入 /admin 中的地址,轮询间隔设为 5 到 10 秒,并在身份验证(Basic)中填写 /admin 中的用户名和密码。
  4. 保存后重启打印机,在 /admin 中点击「测试打印」。首次连接时服务器会记住打印机的 MAC 地址;使用同一地址的其他设备会被拒绝。

通过打印代理连接实惠的小票打印机(USB 或网络)

  1. 除了带云功能的 Epson 或 Star 打印机,也可以使用实惠的 ESC/POS 小票打印机——通过 USB 或网络,例如 Epson TM-T20、Xprinter、Munbyn 或 Rongta。前提是带自动切纸刀:每张小票都以切纸结束。不支持没有切纸刀的打印机(撕纸边、许多 58 毫米便携打印机)。
  2. 为此,俱乐部网络中以 Docker 容器运行一个小型打印代理——在 Raspberry Pi(包括 Pi 2 起的旧型号;Pi 1 和第一代 Pi Zero 不支持)、NAS 或电脑上。它会主动连接我们的服务器,无需端口转发。
  3. 在 /admin 中打开「运营」→「小票打印机」→「打印代理」,输入名称并点击「配对代理」。设备令牌只在此时显示。若打印机通过 USB 连接到代理,请勾选「打印机通过 USB 连接到代理(/dev/usb/lp0)」。用「复制命令」复制现成的启动命令(docker run …)。也可以切换到「docker compose」,以 docker-compose.yml 显示相同配置:用「复制 YAML」复制,保存到一个文件夹,并在其中运行「docker compose up -d」。
  4. 在 Raspberry Pi 或电脑上运行该命令。首次启动时 Docker 会自动从 Docker Hub 拉取镜像 drinklist/print-proxy(https://hub.docker.com/r/drinklist/print-proxy,支持 amd64、arm64 和 arm/v7)。重启或断电后容器会自动重新启动;不久后代理在 /admin 中显示「已连接」。提示:加上 --test-print 和打印机的 IP 地址(或 /dev/usb/lp0),镜像会在不连接服务器的情况下打印测试页——用于检查线缆、地址和切纸刀。
  5. 然后添加小票打印机:连接方式选「打印代理:通过 USB 或网络连接的实惠 ESC/POS 打印机(Docker、Raspberry Pi)」,选择代理,并在「代理上的连接方式」中选择网络(打印机在俱乐部网络中的 IP 地址,端口 9100)或 USB(/dev/usb/lp0)。勾选「打印机带自动切纸刀」,保存后点击「测试打印」。打印路由、重新打印和任务与其他打印机相同。
  6. 代理未连接时(断电、断网),小票会等待,代理重新上线后即打印——超过两小时的小票不再打印,但可以重新打印。若打印机能上报,「状态」列会显示缺纸或盖子打开;许多实惠的打印机不会上报。「新令牌」会使旧令牌失效,「移除」会彻底断开代理。

打印路由:菜品送厨房,饮品送吧台

  1. 每台打印机在「这台打印机打印什么?」中决定自动打印的内容:每笔现金销售后的「收银小票」、关闭收银时的「Z 报表」,以及二维码点单新订单的「订单小票」。多台打印机可以打印同样的内容,例如吧台和办公室都打印收银小票。
  2. 厨房:添加打印机「厨房」,勾选「订单小票」,并在「仅这些商品组(类别)」中选择菜品的类别,例如「餐食」——与商品上设置的类别一致。
  3. 吧台:为打印机「吧台」勾选「收银小票」和「订单小票」,再勾选「其余所有商品(没有专属打印机的类别)」。既没有类别也没有勾选此项时,打印机会完整打印每个订单。
  4. 一个包含 2 杯啤酒和 1 份炸肉排的订单现在会生成两张小票:炸肉排在厨房,啤酒在吧台——每张都有订单号、桌号或点单站、时间、客人和备注。没有匹配打印机的条目不会打印。可选「在订单小票上显示价格」和「将已取消的订单打印为取消小票」。
  5. 「打印路由」按钮显示总览:哪种单据、哪个列表和商品组在哪台打印机上打印。如果打印机没有选定列表,可在打印机对话框中通过「适用于列表」将其路由限定为一个列表。

用订单显示屏代替小票:厨房和吧台的屏幕

  1. 打开「运营」→「订单显示屏」,点击「添加订单显示屏」。名称例如「厨房」,并像打印机一样选择「仅这些商品组(类别)」或「其余所有商品(没有专属打印机的类别)」——屏幕和打印机遵循相同的规则。
  2. 在平板或电视上打开链接或二维码,选择「添加到主屏幕」。显示屏将作为独立应用启动,无需登录,全屏显示并保持屏幕常亮。点一下即可开启新订单提示音。
  3. 每个待处理订单显示为一个大卡片,包含订单号、桌号或点单站、客人、备注,以及仅属于此屏幕的条目。计时持续进行,超过「多少分钟后变黄」后卡片变黄,超过「多少分钟后变红」后变红。
  4. 点击「制作中」接单(吧台会看到已接单),点击「完成」将其从此屏幕移除——10 秒内可「撤销」。出餐和收款仍在吧台完成。「新链接」会使旧链接失效,例如平板丢失时。

小票、PDF 和电视显示屏上的俱乐部标志

  1. 在 /admin 中打开「组织」→「基本资料」,向下滚动到「徽标」部分。
  2. 点击「上传徽标」,选择不超过 2 MB 的 JPG 或 PNG 图片。图片会自动旋转并缩小。
  3. 选择标志显示的位置:「在小票上(小票打印机),顶部居中」「在电视/投影显示上,右上角」以及「在俱乐部的 PDF 上,右上角(收据、对账单、报表)」。
  4. 提示:小票打印机只能打印黑白,因此标志会被转换为点阵。线条清晰、在浅色背景上对比强烈的简洁标志在小票上效果最好。

打印小票

  • 小票包含俱乐部标志、带税率字母的商品行、折扣和价格规则、合计、支付方式以及按税率列出的增值税。
  • 「日记账与账户」→「付款日记账」:在付款行点击「打印小票」会将小票发送到所选打印机;未选择时发送到第一台勾选了「收银小票」的打印机。PDF 收据照常可用。
  • 「运营」→「收银台与 Z 报表」:在已关闭的收银班次所在行点击「打印 Z 报表」,即可在纸上打印 Z 报表。
  • 「运营」→「小票打印机」→「打印任务」:列出所有任务及其状态和错误。点击「重新打印」可再次打印小票。

遇到问题时

  • 「状态」一栏一直显示「从未查询过」:地址未填写或填写错误,未启用 Server Direct Print,或打印机无法访问互联网。还请检查打印机的日期和时间——如果不正确,HTTPS 连接会失败。 如果无法登录网页界面,请按 Epson 手册所述用 FEED 键将打印机恢复出厂设置。
  • 任务一直显示「等待中」或「已发送」:打印机是否开机、有纸且盖子已关闭?打印机会在下一次询问时获取任务;如果没有回应,任务会被重新发送,多次尝试后标记为失败。 如果 /admin 中该打印机显示「请生成新密码(Epson 必需)」,说明密码早于 Digest 登录方式:请生成新密码并填入打印机。
  • 带有打印机消息的错误:通常是缺纸或盖子打开。排除问题后,任务会自动重新发送。
  • 文字被截断或过窄:/admin 中的纸张宽度必须与装入的纸张一致(80 或 58 mm)。
  • 特殊字符显示错误:请检查打印机固件是否为最新版本——旧版本不支持所有字符集。

Epson:实际故障排查

  • 一切都已填写,但服务器收不到任何请求:通常是打印机不认识我们服务器的 Let's Encrypt 证书(在 TM-m30III、TM-i 固件 01.39、根证书 02.03 上遇到过)。执行「Advanced Settings」→「Network Security」→「Root Certificate Update」→「Update」,或在「Network Security」→「CA Certificate」中导入「ISRG Root X1」和「ISRG Root YR」(letsencrypt.org/certificates)。然后在「TM-i Settings」中点击「Apply & Restart」。
  • 修改的设置不生效:Server Direct Print 只有在「TM-i Settings」(/webconfig-i)中点击「Apply & Restart」后才会应用更改。
  • 打印机打出一张「WebConfig Start」纸条,此外什么都不打印:有人以管理员身份登录了网页界面,打印机处于配置模式。请始终用「Administrator Logout」退出。
  • 自检能打印,但网络发来的内容不出纸——连 ePOS 或 9100 端口都接收数据却不打印:网络部件与打印机芯之间的内部连接卡住了。拔掉电源约 30 秒。
  • 地址请以 https:// 开头,不要用 http://:http:// 请求会被重定向,而 Epson 不跟随重定向。
  • 在 /admin 的「运营」→「小票打印机」中,打印机对话框里的「Letzter Kontakt」(最近联系)显示最近的请求及结果;这些诊断信息以德语显示。「Anmeldung angefordert (401 – bei Digest normal)」(已要求登录)在第一次请求时是正常的。出现「Digest-Anmeldung falsch (ID/Passwort prüfen)」(Digest 登录错误)时,请生成新密码并在打印机中填写。若显示「seit dem letzten Serverstart kein Abruf angekommen」(自服务器上次启动以来没有请求),说明打印机连不到我们的服务器——请检查 https://、根证书和网络。

还是卡住了?

如果指南没有回答您的问题,或者界面与说明不一致,请创建工单,我们会在工单中回复。支持仅通过工单提供,不通过电子邮件。