php - 在 php 中打印到 Zebra 打印机

标签 php printing network-printers

正在寻找使用 RAW 端口 9100 从 php 网页打印到 zebra IP 打印机的正确代码。有人知道这是否可能吗?我需要将 ZPL 格式输出的字符串直接发送到 ZM400 标签打印机。我到处搜索,我找到的最接近的是:Print directly to network printer using php

它似乎非常接近我的需要,但是当我的 php 页面遇到该代码时,它什么也没做。这是我使用的代码:

<?php 
     $handle = printer_open('\\\\192.168.2.206:9100\\'); 
     printer_set_option($handle, PRINTER_MODE, "RAW");
     printer_write($handle, "TEXT To print"); 
     printer_close($handle);
?>

最佳答案

我意识到这个问题有点老了,但我最近不得不执行这个确切的任务,这就是我是如何做到的。 主服务器是不在本地网络上的基于云的 PHP 服务器。在本地网络上,我们有另一台机器只是运行 WAMP 和这个脚本,Zebra 打印机本身也在 IP 192.168.1.201 的本地网络上:

<?php
/*
 * File Allows printing from web interface, simply connects to the Zebra Printer and then pumps data
 * into it which gets printed out.
 */
$print_data = $_POST['zpl_data'];

// Open a telnet connection to the printer, then push all the data into it.
try
{
    $fp=pfsockopen("192.168.1.201",9100);
    fputs($fp,$print_data);
    fclose($fp);

    echo 'Successfully Printed';
}
catch (Exception $e) 
{
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

然后,在云服务器生成的网页上,我们有一些代码简单地向本地网络上的服务器执行 Ajax POST,在要打印的 zpl_data 中发布。

编辑 2017

我们现在已经将事情转移到通过 PrintNode ( https://www.printnode.com/ ) 运行。到目前为止,我们发现它非常好,允许我们打印各种文档而无需使用我们自己的代理,还提供了一个带有白色标签的安装程序,因此它看起来像我们自己的产品。我不隶属于 PrintNode。

关于php - 在 php 中打印到 Zebra 打印机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14864065/

相关文章:

php - 将 null 转换为字符串

android - Kotlin Android 打印到控制台

javascript - HTML 编辑器漏洞

php - 使用 preg_replace() 替换特殊字符之间的内容

php - PHP如何进行集中的curl_multi请求?

c# - Windows - 将程序用作虚拟打印机?

c# - 在 C# 中格式化打印文档

c# - 获取网络中可用的所有打印机 - 不仅仅是本地打印机

c++ - .NET 从具有 www 接口(interface)的打印机获取数据

java - 如果 PC 连接到网络打印机,如何在 java 中检查?