PHP生成PDF:库与工具概述
创建PDF文档是Web开发中常见的任务之一。PHP提供了几个成熟的库,允许通过HTML、动态数据或直接绘图来生成PDF。在本文中,我们将介绍四个主要库:TCPDF、FPDF、Dompdf和mPDF,它们的特点、使用示例以及为教育网站选择时的建议。
1. TCPDF — 行业标准
TCPDF是用于PHP生成PDF的最强大的库之一。它支持Unicode、TrueType和OpenType字体、密码保护、水印、二维码等等。非常适合创建复杂的报告、发票和证书。
安装: 通过Composer:composer require tecnickcom/tcpdf
创建简单PDF的示例:
<?phprequire_once __DIR__ . '/vendor/autoload.php';
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->SetCreator('PythonLib.ru');$pdf->SetAuthor('作者');$pdf->SetTitle('TCPDF示例');$pdf->SetSubject('PDF生成');
$pdf->AddPage();$pdf->SetFont('dejavusans', '', 14);$pdf->Cell(0, 10, '你好,世界!这是来自TCPDF的PDF。', 0, 1);
$pdf->Output('example_tcpdf.pdf', 'I');?>2. FPDF — 轻量且快速
FPDF是用于简单PDF文档的经典库。它不需要安装额外的扩展,非常易于学习。适用于创建表格、简单报告和发货单。
安装: 从fpdf.org下载或通过Composer:composer require setasign/fpdf
带表格的示例:
<?phprequire_once __DIR__ . '/vendor/autoload.php';
$pdf = new FPDF();$pdf->AddPage();$pdf->SetFont('Arial', 'B', 12);
// 表格标题$pdf->Cell(40, 10, '名字', 1);$pdf->Cell(40, 10, '姓氏', 1);$pdf->Cell(40, 10, '年龄', 1);$pdf->Ln();
$pdf->SetFont('Arial', '', 10);$pdf->Cell(40, 10, '伊万', 1);$pdf->Cell(40, 10, '彼得罗夫', 1);$pdf->Cell(40, 10, '25', 1);
$pdf->Output('example_fpdf.pdf', 'I');?>3. Dompdf — 从HTML到PDF
Dompdf允许将HTML+CSS转换为PDF。如果您已经有页面布局(例如发票或文章),这非常方便。它支持CSS 2.1和部分CSS 3、字体和图像。
安装: composer require dompdf/dompdf
HTML转换示例:
<?phprequire_once __DIR__ . '/vendor/autoload.php';
use Dompdf\\Dompdf;
$dompdf = new Dompdf();$html = '<h1 style="color: #3498db;">PDF标题</h1><p>此文档是使用Dompdf从HTML创建的。</p><table border="1" cellpadding="5"> <tr><th>列1</th><th>列2</th></tr> <tr><td>数据1</td><td>数据2</td></tr></table>';
$dompdf->loadHtml($html);$dompdf->setPaper('A4', 'portrait');$dompdf->render();$dompdf->stream('example_dompdf.pdf', ['Attachment' => 0]);?>4. mPDF — 强大的HTML转换器
mPDF是另一个用于将HTML转换为PDF的库。它比Dompdf更好地支持CSS、Unicode、东方字体、创建目录和页眉页脚。非常适合书籍、杂志和复杂文档。
安装: composer require mpdf/mpdf
带页眉页脚的示例:
<?