0

我在 PHP apache 上有一个基于 Web 的销售点应用程序。用户从另一台计算机(网络内)访问 POS 以执行交易,然后在其本地计算机上打印。目前打印格式为html,在用户机器上显示和打印。

我计划增加对收据打印机的支持,如爱普生热敏或点阵、星形。我搜索了可能适合打印到这些打印机的代码 escpos php 代码。( https://github.com/mike42/escpos-php )

我读到这个脚本在服务器机器或网络打印机上本地打印。但问题是,我在客户端使用的打印机只支持 USB 或串行/并行。如何将 escpos 字符直接从服务器发送到客户端打印机?

4

2 回答 2

2

能够通过 Web 服务器访问本地 USB 设备将是一个巨大的安全风险。例如,想想一个“邪恶”的服务器,它在连接到客户端的任何打印机上打印整个维基百科。

我认为没有办法通过简单的基于 Web 的服务器软件来访问任何客户端连接的 USB 设备。我建议要么

  1. 获得一台显示为普通打印机的收据打印机,并相应地设置您的收据样式
  2. 写一个胖客户端,或者
  3. 如果本地连接的收据打印机有任何作业,请编写一个“打印代理”定期检查服务器。

无论哪种方式,我认为在这一点上,PHP 没有多大用处。

当然,您可以尝试通过 IP 建立 USB 隧道,但设置和维护起来会非常麻烦。

于 2015-10-12T11:47:11.310 回答
0

我知道这个回复可能为时已晚,但我仍会将我的答案留给将来需要此回复的任何人。

您可以在本地机器上设置一个 PHP 脚本,一旦按下打印按钮,就可以在远程应用程序中触发该脚本(可能通过打开本地脚本 URL 的 javascript 窗口打开)。该 PHP 脚本包含使用本地热敏打印机打印收据的代码。您可以通过 API 从远程应用程序获取数据。不知何故,这在某种程度上是一个肮脏的解决方案,但我认为这比仅仅为了打印而打开一个端口要安全得多。

于 2019-10-02T16:26:43.327 回答