使用PHP将数据打印到打印机

时间:2014-03-10 23:22:03

标签: php windows printing

我有一个问题一直困扰着我至少3周。我需要使用php将一些数据打印到打印机。我将数据保存到$print_output变量中,我知道我的数据很好,因为当我通过电子邮件发送它时,它会显示应该显示的所有内容。

好吧,我尝试编写这段代码,我认为我可以测试它,但不确定它是否会起作用。

$handle = printer_open("\\\\192.168.1.33_4\\Printer_Office");
printer_set_option($handle, PRINTER_MODE, "raw"); 
printer_write($handle,$print_output); 
printer_close($handle); 

好吧,事实证明我没有安装php_printer.dll扩展,我被告知不要重新编译php来添加它。

我想要做的只是将$print_output中存储的数据打印到同一网络上的打印机。我不想使用javascript函数window.print(),因为我无法弹出打印对话框。

有没有人有任何可以指引我朝正确方向发展的信息?或者另一种简单地将少量数据直接打印到打印机而不使用php的printer_open功能的方法?

2 个答案:

答案 0 :(得分:4)

对于遇到同样问题的人,我发现我可以使用套接字编程简单地按下如下数据。下面的IP地址是我的打印机的IP地址。如果您愿意,可以远程登录到打印机以确保连接正常工作。

if(isset($_POST['order'])){
$print_output= $_POST['order'];
}
try
{
    $fp=pfsockopen("192.168.1.33", 9100);
    fputs($fp, $print_output);
    fclose($fp);

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

答案 1 :(得分:1)

您可以在Windows上使用PHP打印几个选项:

1。扩展名“php_printer”

因为PHP 5.2.0已经过时,所以很难找到编译扩展。  您可能会尝试删除5.2.8的php_printer扩展名:

http://downloads.php.net/pierre/php_printer-cvs-20081215-5.2.8-nts-Win32.zip

添加到您的php.ini:

extension=php_printer.dll

最近的版本可能会在皮埃尔的下载网站上找到:http://downloads.php.net/pierre/

2。通过PHP

执行windows CLI命令“print”

另一种解决方案是使用windows命令“print”。

请参阅http://technet.microsoft.com/en-us/library/cc772773%28v=ws.10%29.aspx

exec("print /d:\\192.168.1.33_4\\Printer_Office c:\accounting\report.txt); 

3。使用套接字

$fp=pfsockopen("192.168.1.201",9100);
fputs($fp,$print_data);
fclose($fp);

4。输出到HTML,在浏览器中打开并触发window.print()