从PHP应用程序通过networking打印

我有一组打印机通过networking连接,分配给每台打印机的静态IP。

现在我有一个PHP Web应用程序运行在需要发送打印作业的Linux服务器上,通过networking打印到这些打印机上。

这可能使用lpr或子,我怎么去做。

Solutions Collecting From Web of "从PHP应用程序通过networking打印"

您可以从这里使用LPR Printer类:

http://www.phpclasses.org/package/2540-PHP-Abstraction-for-printing-documents.html

例:

<?php include("PrintSend.php"); include("PrintSendLPR.php"); $lpr = new PrintSendLPR(); $lpr->setHost("10.0.0.17"); //Put your printer IP here $lpr->setData("C:\\wampp2\\htdocs\\print\\test.txt"); //Path to file, OR string to print. $lpr->printJob("someQueue"); //If your printer has a built-in printserver, it might just accept anything as a queue name. ?> 

这个问题之前已经被问到了。 使用PHP查看打印到网络打印机

给定的答案是exec("lpr -P 'printer' -r 'filename.txt');

然而,答案从未被接受,因此不确定OP是否发现它有帮助; 它当然看起来应该做的伎俩,但它不是一个从PHP内部直接和简单的方法。

我发现的一些其他资源也建议在这种方法上的变化。

深入挖掘,我看到PHP在PECL中有一个打印机模块。 但是,它只适用于Windows,看起来不是很好。 但如果有帮助,链接在这里: http : //www.php.net/manual/en/intro.printer.php

我认为最终的答案是,PHP并不是真正为这种事情设计的,并没有内置的功能来做到这一点。 但是因为你可以用exec()和类似的命令来exec()外部命令,所以它不应该太难以工作,尽管不是很理想。

试试PHP :: PRINT :: IPP

它对我来说是完美的。

基本用法

  <?php require_once(PrintIPP.php); $ipp = new PrintIPP(); $ipp->setHost("localhost"); $ipp->setPrinterURI("/printers/epson"); $ipp->setData("./testfiles/test-utf8.txt"); // Path to file. $ipp->printJob(); ?> 

参考

我也在做这方面的研究…我认为下面的书面代码可以帮助你在Linux中处理打印机

 <?php $printer = "\\\\Pserver.php.net\\printername"); if($ph = printer_open($printer)) { // Get file contents $fh = fopen("filename.ext", "rb"); $content = fread($fh, filesize("filename.ext")); fclose($fh); // Set print mode to RAW and send PDF to printer printer_set_option($ph, PRINTER_MODE, "RAW"); printer_write($ph, $content); printer_close($ph); } else "Couldn't connect..."; ?>