如果CUPS配置正确,从shell打印PDF就像这样简单
lpr myfile.pdf
因此,一旦将PDF写入临时文件,就可以使用任何可用的PHP函数来执行该shell命令:exec(),shell_exec(),system()
您甚至可以在不编写临时文件的情况下执行此操作,并通过STDIN将数据直接提供给lpr(尝试cat myfile.pdf | lpr作为shell上的示例).
如果使用proc_open()运行数据,则可以使用PHP将数据提供给程序的STDIN. PHP Manual的第一个例子可以适用于这样的事情:
$descriptorspec = array(
0 => array("pipe", "r"), // stdin is a pipe that the child will read from
);
$process = proc_open('lpr', $descriptorspec, $pipes);
if (is_resource($process)) {
// $pipes now looks like this:
// 0 => writeable handle connected to child stdin
// 1 => readable handle connected to child stdout
// Any error output will be appended to /tmp/error-output.txt
fwrite($pipes[0], $pdf_data);
fclose($pipes[0]);
}
?>