我意识到这个问题有点老,但我最近不得不执行这个确切的任务,这里是我如何做到这一点。 主服务器是不在本地网络上的基于云的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。在安装上需要的IP打印机后
:
exec('lp -d printer file');
在我的情况下,命令是:
exec('lp -d Epson-Cofetarie /home/clara/Desktop/txt.txt');
凡
那么这将是理想!有没有一个你会推荐在PHP中使用套接字打印的参考?这就是我所需要的。它的所有内部,在同一个网络上。我知道我的Zebra ZM400能够通过插座接受打印。我们目前使用小型Access应用程序来打印报告标签。我只是没有看到任何用PHP实现的好例子。看起来像它的可行... – user2070092 2013-02-14 15:37:56
我找到一个链接,解释在PHP编程套接字。你认为这是朝着正确方向迈出的一步吗?:http://www.devshed.com/c/a/PHP/Socket-Programming-With-PHP/ – user2070092 2013-02-14 18:25:09
已解决:http://www.binarytides.com/ php-socket-programming-tutorial /从“发送数据”部分复制并粘贴代码很棒! thnx指针@ jason.zissman – user2070092 2013-02-15 16:48:55