使用PHP生成PDF报告:库与工具概览
创建PDF文档是PHP Web开发中的常见任务之一。无论是生成发票、报告、证书,还是简单地将数据导出为便于打印的格式,PHP都提供了多种成熟的解决方案。本文将介绍四个主要库:TCPDF、FPDF、Dompdf和mPDF。您将了解它们的特点、优势,并获取每个库的代码示例。
1. FPDF——轻量快速的经典之选
FPDF可以说是PHP中最著名的PDF生成库。它无需外部扩展,开箱即用,且速度极快。主要缺点是对于复杂CSS样式和HTML的支持有限。
创建带表格的简单PDF报告示例:
<?phprequire_once('fpdf.php');
$pdf = new FPDF();$pdf->AddPage();$pdf->SetFont('Arial', 'B', 16);$pdf->Cell(40, 10, '销售报告');$pdf->Ln(20);
$pdf->SetFont('Arial', '', 12);// 表格标题$pdf->Cell(60, 7, '商品', 1);$pdf->Cell(30, 7, '数量', 1);$pdf->Cell(40, 7, '价格', 1);$pdf->Ln();
// 数据$items = [ ['笔记本电脑', 5, 45000], ['鼠标', 10, 1200], ['键盘', 7, 2500]];
foreach ($items as $item) { $pdf->Cell(60, 7, $item[0], 1); $pdf->Cell(30, 7, $item[1], 1); $pdf->Cell(40, 7, $item[2] . ' 卢布', 1); $pdf->Ln();}
$pdf->Output();?>适用场景:适用于不需要复杂排版、注重速度和文件体积小的简单报告。
2. TCPDF——处理复杂PDF的强大工具
TCPDF是FPDF的一个分支,具有更强大的功能。它支持Unicode、JPEG2000、QR码、SVG,以及HTML和CSS(有限支持)。该库正在积极开发中,并被用于Drupal和Moodle等系统。
使用HTML标记生成报告示例:
<?phprequire_once('tcpdf/tcpdf.php');
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);$pdf->SetCreator(PDF_CREATOR);$pdf->SetAuthor('您的公司');$pdf->SetTitle('月度报告');
$pdf->AddPage();$html = '<h2>月度报告</h2><table border="1" cellpadding="5"> <tr style="background-color:#cccccc;"> <th>指标</th><th>数值</th> </tr> <tr> <td>收入</td><td>1,200,000 卢布</td> </tr> <tr> <td>支出</td><td>850,000 卢布</td> </tr> <tr> <td>利润</td><td><strong>350,000 卢布</strong></td> </tr></table><p>生成日期:' . date('Y-m-d') . '</p>';
$pdf->writeHTML($html, true, false, true, false, '');$pdf->Output('report.pdf', 'I');?>适用场景:适用于包含表格、图片、非标准字体并支持西里尔字母的复杂文档。
3. Dompdf——将HTML转换为PDF
Dompdf是一个将HTML页面渲染为PDF的库。它支持CSS2.1和部分CSS3,允许您使用熟悉的布局创建报告。非常适合转换现成的HTML模板。
从HTML模板创建报告示例:
<?phprequire_once 'dompdf/autoload.inc.php';use Dompdf\\Dompdf;
$dompdf = new