【问题标题】:Web-based printing to a remote local thermal receipt printer基于 Web 的打印到远程本地热敏收据打印机
【发布时间】:2016-01-09 17:16:56
【问题描述】:

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

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

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

【问题讨论】:

标签: php printing escpos


【解决方案1】:

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

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

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

无论如何,我认为在这一点上,PHP 没有多大用处。

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

【讨论】:

  • 感谢您的建议,我将尝试使用“厚客户端”,我之前通过在客户端运行 php apache 和一个简单的脚本来完成这项工作。如果可能的话,我仍在探索简单或正确的方法,以避免额外的安装。我读到的其他方法是使用 java applet,由于将来可能会遇到 applet 签名问题,我避免使用它,从技术上讲,我对它不太熟悉。
  • 如果你真的想用 php 编写你的胖客户端,你可以查看phpdesktop,它基本上是一个捆绑在一个程序中的网络服务器和浏览器。
【解决方案2】:

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

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

【讨论】:

  • 但是你没有提供任何关于如何完成它的细节。你说的都是可以的
  • 你有例子吗?
猜你喜欢
  • 1970-01-01
  • 2017-03-12
  • 1970-01-01
  • 2019-04-14
  • 1970-01-01
  • 2013-07-04
  • 1970-01-01
  • 2015-10-25
  • 2012-10-05
相关资源
最近更新 更多