【问题标题】:Is there a way in PHP to store printjobs that are sent via a Windows PC?PHP 中有没有办法存储通过 Windows PC 发送的打印作业?
【发布时间】:2019-07-04 20:15:03
【问题描述】:

我正在为学校做一个项目。我想知道 PHP 中是否有办法监听打印作业并在收到后存储它们?我目前有一个网络服务器,它接受来自其他应用程序的 webhook,解析 JSON 并存储在 MsSQL 中。这是错误的道路吗?谢谢

【问题讨论】:

  • 您是通过网页还是直接通过 php 与打印机交互?根据您的 cmets - 看起来您正在直接与盒子中的打印机连接 - 在这种情况下,根据您的设置,您可以使用 LPR,或者如果您在 Windows 上,您可以使用 LPT2。或者,您可以使用 SO 上有人使用过的这种方法:stackoverflow.com/questions/22313439/…
  • 我正在尝试在我的本地网络服务器上编写一个 PHP 脚本。我会打印到这个 IP,而 php 脚本将是我的网络服务器索引。我想获取打印对象并存储它。有点像打印队列。此时我只想将其存储或转换为 PDF。不需要发送到打印机或任何东西。我有一个稍后的项目来获取另一个应用程序存储的数据并将其打印到打印机。一次一件事哈哈
  • 感谢您的澄清。我可以问一下您的用例是什么 - 或者您想要实现什么(这是出于我个人的好奇心)。如果传入的数据每次都是 json 格式,那么您的方法将有效。如果不是(如果可能),我基本上会将传入的文件输出到一个文件夹(具有正确的权限等),然后根据需要打印该文件夹中的文档。您还可以构建一个快速界面来查看那里存在哪些文档等。同样,这一切都可以通过您的方法实现。
  • 基本上想尝试解决远程打印的问题。存储所有打印作业,然后当我在可以实际打印的设备上时获取它们。奇怪的想法,但它是一个更大的项目的一部分。
  • 据说默认打印作业不是 json 格式,所以我不确定如何接受和存储 Windows PC 将要发送的对象?

标签: php printing


【解决方案1】:

好的——我不知道这是否是一个解决方案,但这是我试图提供帮助的尝试 :)

免责声明:我不隶属于此处发布的任何链接,并且(或)不提供任何建议。

一般假设:

  1. PHP 是在所有实例中使用的服务器端语言(该理论也应该适用于其他语言 - 使用 PHP 作为问题的标记)
  2. 发送服务器和接收服务器是不同的(如果两者都在同一个盒子上会更容易 - 但不是显示停止器)
  3. 访问发送方和接收方网络服务器
  4. Windows 设置(WAMP 或替代方案)
  5. 您正在保护您的设置/目录访问权限

选项 1(自定义发送者/接收者)

在发送打印请求的盒子上:

在接收文件的盒子上:

  • 创建一个 PHP 脚本来远程读取文件

  • 在列表中显示要打印的文件,可以下载到本地终端/设备并打印

选项 2(利用现有的打印服务器)

在此选项中,您只需要修改发件人网络服务器配置: [灵感来自:https://www.hashbangcode.com/article/printing-directly-php]

  • 为您的版本下载 php_printer.dll (https://windows.php.net/downloads/pecl/snaps/printer/0.1.0-dev/)
  • 通过以下方式在 php.ini 中启用:printer.default_printer=PHP_INI_ALL extension=php_printer.dll
  • 将打印机设置为您的打印服务器地址,并将您的输出直接从 Web 服务器发送到您的应用程序中进行打印,如下所示:

    ` $data="你好"; 打印机设置选项($ph,PRINTER_MODE,“RAW”); 打印机写入($ph,$data); 打印机关闭($ph); } else "无法连接..."; ?>'

选项 3(使用插件): https://www.neodynamic.com/products/printing/raw-data/php/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 2016-08-05
    相关资源
    最近更新 更多