将FPDF生成的PDF文件自动打印到实体打印机的问题可以通过以下代码片段实现:
//引入FPDF库
require('fpdf/fpdf.php');
class PDF extends FPDF {
function AutoPrint($printer='') {
//指定打印机名称
if($printer) $printer = "where name='$printer'";
$pk = Printer::enumPrinters(PRINTER_ENUM_LOCAL | $printer);
if(!count($pk)) {
$this->Error("No printer found: check name and availability");
}
//生成命令进行打印
//注意:类似于 Windows 的打印机在 Linux 下可能无法正常工作
foreach($pk as $printer) {
$command = sprintf("lp -d %s -", $printer['name']);
$handle = popen($command, "w");
fwrite($handle, $this->buffer);
pclose($handle);
}
}
}
$pdf = new PDF();
$pdf->AddPage();
$pdf->SetFont('Arial','',20);
$pdf->Cell(40,10,'Hello World!');
$pdf->AutoPrint('My Printer');
$pdf->Output();
通过调用PDF类的AutoPrint()方法,指定打印机名称并生成打印命令,即可实现自动打印到实体打印机的功能。注意,此处将代码中的打印机名称'My Printer'改为实际打印机的名称。
需要注意的是,类似于 Windows 的打印机在 Linux 下可能无法正常工作,需要进行相应的调整。