我意识到这个问题有点老了,但我最近不得不执行这个确切的任务,这就是我的做法。主服务器是不在本地网络上的基于云的 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。