【问题标题】:Check Printer Status in PHP7在 PHP7 中检查打印机状态
【发布时间】:2020-01-20 09:47:15
【问题描述】:

我正在测试下面的代码以打印带有自定义文本的标签

    $outputString='^XA
^FO100, 200
^AD,50,25
^FH_^FD Hello world _7E ^FS
^XZ';
     $Ip='xxx.xxx.x.xx';
     $port='xxxx'
        $fp = fsockopen($Ip, $port, $errno, $errstr);
    if (!$fp) {
        echo "$errstr ($errno)<br />\n";
    } else {
        try {
            $kk=fwrite($fp, $outputString, strlen($outputString));
            fclose($fp);
            echo 'Successfully Printed';
        } catch (Exception $e) {
            echo 'Caught exception: ', $e->getMessage(), "\n";
        }
    }

它工作正常,但我正在寻找任何方法或方法来确定打印机是否已成功打印数据,即如果没有纸,它仍然可以打印成功打印 em>

【问题讨论】:

  • 我怀疑如果不从打印机编码一些东西是完全可能的 - 它会返回成功,因为你只是检查它是否进入队列 - 而不是它是否打印(使用@的类似问题987654322@函数)
  • @treyBake fwrite 总是返回相同的东西,即使打印机打印与否。那你还有什么办法可以查到吗??
  • 如果是关于队列的,那么也许分析队列数据。 :(
  • 不,所有 PHP 会检查它是否成功添加到队列中,这就是 PHP 连接结束的地方

标签: php printing php-7 zebra-printers


【解决方案1】:

您想要的是 ZPL 命令~HS(主机状态)。它返回一个三行响应,其中包含有关打印机当前状态的大量有用信息。前两行提供标签存在、缺纸、抬头、温度过高/过低等标志。

详情请见https://www.zebra.com/content/dam/zebra/manuals/printers/common/programming/zpl-zbi2-pm-en.pdf

【讨论】:

  • 我已将 ~HS 添加到我的 zpl 代码中,它仍然没有返回任何内容,请指导我!!
  • ~HS 是一个独立的 ZPL 命令(不需要包含在 ^XA ... ^XZ 中)。我发现最好在打印标签之前发送。发送~HS 后,您的代码需要从套接字/端口读取,直到它看到三个\r\n 终止行。然后解析大部分固定格式的标志集,如果没有错误条件,发送标签格式是安全的。
猜你喜欢
  • 2021-07-07
  • 1970-01-01
  • 1970-01-01
  • 2020-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
相关资源
最近更新 更多