使用PHP生成PDF报告:库与示例概览

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

使用PHP生成PDF报告:如何选择库

创建PDF文档是Web开发中最常见的任务之一。发票、验收单、统计报告、价目表——这些通常需要在服务器端动态生成。PHP提供了几个成熟的库用于生成PDF。在本文中,我们将介绍三种最流行的工具:FPDF、TCPDF和Dompdf,并提供实用的代码示例。



1. FPDF——轻量且快速的经典

FPDF是一个简单的库,不需要外部依赖。它非常适合基本的报告:文本、表格、简单的图像。主要特点:

  • 无需安装额外扩展即可运行(图像处理需要标准GD扩展)。
  • 通过单独的插件(tFPDF)或手动字体转换支持UTF-8。
  • 在简单文档上性能出色。

创建带表格的简单PDF报告示例:

<?phprequire('fpdf.php');

$pdf = new FPDF();$pdf->AddPage();$pdf->SetFont('Arial', 'B', 16);$pdf->Cell(40, 10, '销售报告', 0, 1);$pdf->SetFont('Arial', '', 12);

// 表格标题$pdf->Cell(40, 10, '商品', 1);$pdf->Cell(30, 10, '数量', 1);$pdf->Cell(40, 10, '价格', 1);$pdf->Ln();

// 数据$pdf->Cell(40, 10, '笔记本电脑', 1);$pdf->Cell(30, 10, '5', 1);$pdf->Cell(40, 10, '45000 卢布', 1);$pdf->Ln();$pdf->Cell(40, 10, '鼠标', 1);$pdf->Cell(30, 10, '10', 1);$pdf->Cell(40, 10, '1200 卢布', 1);

$pdf->Output('D', 'report.pdf');?>


2. TCPDF——用于复杂报告的强大工具

TCPDF是FPDF的增强版,支持UTF-8、CSS、HTML标签、二维码、数字签名等更多功能。推荐用于:

  • 包含西里尔字母和其他非拉丁字体的文档。
  • 具有复杂布局的报告(页眉页脚、多页表格)。
  • 生成用于归档的PDF/A格式。

在TCPDF中使用HTML标记的示例:

<?phprequire_once('tcpdf/tcpdf.php');

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);$pdf->SetCreator('PythonLib');$pdf->SetAuthor('开发者');$pdf->SetTitle('复杂报告');

$pdf->AddPage();$html = '<h2>月度统计</h2><table border="1" cellpadding="5"><tr><th>参数</th><th>数值</th></tr><tr><td>访客</td><td>12 450</td></tr><tr><td>订单</td><td>342</td></tr></table><p>由系统<strong>自动</strong>生成。</p>';

$pdf->writeHTML($html, true, false, true, false, '');$pdf->Output('stat.pdf', 'I');?>


3. Dompdf——从HTML/CSS生成PDF

Dompdf是一个独特的库,它从普通的HTML和CSS渲染PDF。如果您已经有报告布局(例如,用于浏览器打印),这是理想的选择。支持:

  • CSS 2.1 和部分 CSS 3(float、position、border-radius)。
  • 嵌入图像(base64或通过URL)。
  • 表格、列表、多页文档。

将HTML模板转换为PDF的示例:

<?phprequire 'vendor/autoload.php';

use Dompdf\\Dompdf;

$dompdf = new Dompdf();$html = '<html><head>

推荐