php实现打印功能
PHP 实现打印功能的方法
PHP 可以通过多种方式实现打印功能,具体取决于打印的需求(如打印网页内容、PDF 或直接调用打印机)。以下是几种常见的实现方法:
使用 JavaScript 的 window.print()
PHP 可以生成包含 JavaScript 的 HTML 页面,通过 window.print() 调用浏览器的打印功能。
<?php
echo '<button onclick="window.print()">打印页面</button>';
?>
这种方法适用于打印当前网页内容,但无法自定义打印样式或内容。
生成 PDF 并打印
使用库如 TCPDF 或 mPDF 生成 PDF 文件,用户可以下载或直接打印。
安装 TCPDF:

composer require tecnickcom/tcpdf
示例代码:
<?php
require_once('tcpdf/tcpdf.php');
$pdf = new TCPDF();
$pdf->AddPage();
$pdf->Write(0, '打印测试内容');
$pdf->Output('document.pdf', 'I'); // 'I' 表示直接在浏览器中打开
?>
用户可以在浏览器中打开 PDF 后手动打印。
直接调用打印机(服务器端打印)
在服务器环境下,可以通过系统命令调用打印机(仅适用于本地或网络打印机)。

<?php
$content = "打印测试内容";
file_put_contents('print.txt', $content);
exec('lp print.txt'); // Linux 系统
// 或 Windows 系统: exec('print /D:\\\\server\\printer print.txt');
?>
注意:此方法需要服务器有权限访问打印机。
使用 CSS 控制打印样式
通过 PHP 生成 HTML,结合 CSS 的 @media print 控制打印样式。
<?php
echo '<style>
@media print {
.no-print { display: none; }
}
</style>
<div>打印内容</div>
<div class="no-print">不打印的内容</div>';
?>
打印特定部分内容
通过 PHP 动态生成需要打印的 HTML 内容,并用 div 包裹。
<?php
echo '<div id="printableArea">
<h1>仅打印此部分</h1>
</div>
<button onclick="printDiv(\'printableArea\')">打印</button>
<script>
function printDiv(divName) {
var printContents = document.getElementById(divName).innerHTML;
var originalContents = document.body.innerHTML;
document.body.innerHTML = printContents;
window.print();
document.body.innerHTML = originalContents;
}
</script>';
?>
注意事项
- 浏览器兼容性:
window.print()在所有现代浏览器中均支持,但无法自定义打印设置。 - 权限问题:直接调用服务器打印机需确保 PHP 有执行系统命令的权限。
- 样式调整:使用 CSS
@media print可以隐藏不需要打印的元素或调整布局。
以上方法可根据实际需求选择,网页打印推荐结合 JavaScript 和 CSS,而复杂文档建议生成 PDF 后打印。






