我意識到這個問題有點老,但我最近不得不執行這個確切的任務,這裏是我如何做到這一點。 主服務器是不在本地網絡上的基於雲的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