この質問は少し古いと思いますが、最近この正確なタスクを実行する必要がありました。これが私がどのように実行したかです。メインサーバーは、ローカルネットワーク上にないクラウドベースのPHPサーバーです。ローカルネットワークには、単にWAMPとこのスクリプトを実行している別のマシンがあり、Zebraプリンター自体もIP192.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";
}
次に、クラウドサーバーによって生成されたWebページに、ローカルネットワーク上のサーバーにAjax POSTを実行し、印刷するzpl_dataに投稿するコードがあります。
2017年を編集
PrintNode(https://www.printnode.com/)を実行するために物事を移動しました。これまでのところ非常に優れていることがわかり、独自のプロキシを使用せずにあらゆる種類のドキュメントを印刷できます。また、独自の製品のように見えるホワイトラベルのインストーラーも提供しています。私はPrintNodeと提携していません。