9

各プリンターに静的IPが割り当てられたネットワークを介して接続するプリンターのセットがあります。

これで、ネットワーク経由でこれらのプリンターに印刷ジョブを送信する必要があるLinuxサーバー上で実行されているPHPWebアプリケーションがあります。

これはlprまたはカップを使用して可能ですか?どうすればそれを実行できますか?

4

4 に答える 4

10

ここからLPRプリンタクラスを使用できます。

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.
?>
于 2011-04-17T17:39:07.210 に答える
5

この質問は以前に尋ねられました。PHPを使用したネットワークプリンターへの印刷を参照してください

その時の答えはexec("lpr -P 'printer' -r 'filename.txt');

しかし、答えは決して受け入れられなかったので、OPがそれが役に立ったかどうかはわかりません。確かにそのトリックを実行する必要があるように見えますが、PHP内から実行するための直接的で簡単な方法ではありません。

私が見つけた他の多くのリソースも、このアプローチのバリエーションを推奨していました。

もう少し掘り下げてみると、PHPにはPECLにPrinterモジュールがあることがわかります。ただし、これはWindows専用であり、適切に保守されていないようです。しかし、それが役立つ場合は、ここにリンクしてください:http ://www.php.net/manual/en/intro.printer.php

最終的には、PHPはこの種の目的のために設計されたものではなく、それを実行するための組み込み機能がないというのが答えだと思います。ただし、などを使用して外部コマンドにシェルアウトできるためexec()、理想的ではありませんが、動作させるのはそれほど難しくありません。

于 2011-04-17T17:04:51.007 に答える
3

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();                                                          
?>

参照

于 2015-03-02T13:32:06.530 に答える
0

私もこれについて研究していました...そして私は以下に書かれたコードが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...";
?>
于 2014-05-09T09:43:20.517 に答える