PHP生成PDF:库、工具与代码示例

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

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

开始课程

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



带页眉页脚的示例:



<?                    

推荐