基于 Web 的远程本地热敏收据打印机打印
Web-based printing to a remote local thermal receipt printer
我在 PHP apache 上有一个基于网络的销售点应用程序。用户从另一台计算机(网络内)访问 POS 以执行交易,然后在他们的本地机器上打印。目前打印格式为html,在用户机器上显示打印。
我计划添加对收据打印机的支持,例如 epson 热敏打印机或点阵打印机、star。我搜索了 code escpos php 代码,可能适合在这些打印机上打印。 (https://github.com/mike42/escpos-php)
我读到此脚本在服务器计算机或网络打印机上本地打印。但问题是,我在客户端使用的打印机只支持 USB 或 serial/parallel。如何将 escpos 字符直接从服务器发送到客户端打印机?
能够通过网络服务器访问本地USB设备将存在巨大的安全风险。例如,想一想 "evil" 服务器可以在连接到客户端的任何打印机上打印整个维基百科。
我认为没有一种方法可以使用简单的基于 Web 的服务器软件来访问任何客户端连接的 USB 设备。
我建议
- 获得一台显示为普通打印机的收据打印机
相应地设计您的收据样式
- 改为编写胖客户端或
- 写一个 "print-agent" 定期检查服务器是否有本地连接的收据打印机的作业。
无论如何,我认为 PHP 在这一点上没有多大用处。
当然,您可以尝试通过 IP 隧道传输 USB,但这样设置和维护起来会很麻烦。
我知道这个回复可能为时已晚,但我仍然会把我的答案留给将来需要这个的人。
您可以在本地计算机上设置一个 PHP 脚本,一旦按下打印按钮,您就可以在远程应用程序中触发该脚本(可能通过 javascript window 打开本地脚本的 URL)。 PHP 脚本包含使用本地热敏打印机打印收据的代码。您可以通过 API 从您的远程应用程序获取数据。这在某种程度上是一个肮脏的解决方案,但我认为这比仅仅为了打印而打开一个端口要安全得多。
我在 PHP apache 上有一个基于网络的销售点应用程序。用户从另一台计算机(网络内)访问 POS 以执行交易,然后在他们的本地机器上打印。目前打印格式为html,在用户机器上显示打印。
我计划添加对收据打印机的支持,例如 epson 热敏打印机或点阵打印机、star。我搜索了 code escpos php 代码,可能适合在这些打印机上打印。 (https://github.com/mike42/escpos-php)
我读到此脚本在服务器计算机或网络打印机上本地打印。但问题是,我在客户端使用的打印机只支持 USB 或 serial/parallel。如何将 escpos 字符直接从服务器发送到客户端打印机?
能够通过网络服务器访问本地USB设备将存在巨大的安全风险。例如,想一想 "evil" 服务器可以在连接到客户端的任何打印机上打印整个维基百科。
我认为没有一种方法可以使用简单的基于 Web 的服务器软件来访问任何客户端连接的 USB 设备。 我建议
- 获得一台显示为普通打印机的收据打印机 相应地设计您的收据样式
- 改为编写胖客户端或
- 写一个 "print-agent" 定期检查服务器是否有本地连接的收据打印机的作业。
无论如何,我认为 PHP 在这一点上没有多大用处。
当然,您可以尝试通过 IP 隧道传输 USB,但这样设置和维护起来会很麻烦。
我知道这个回复可能为时已晚,但我仍然会把我的答案留给将来需要这个的人。
您可以在本地计算机上设置一个 PHP 脚本,一旦按下打印按钮,您就可以在远程应用程序中触发该脚本(可能通过 javascript window 打开本地脚本的 URL)。 PHP 脚本包含使用本地热敏打印机打印收据的代码。您可以通过 API 从您的远程应用程序获取数据。这在某种程度上是一个肮脏的解决方案,但我认为这比仅仅为了打印而打开一个端口要安全得多。