PHP如何生成PDF文件?

2025-12发布20次浏览

在PHP中生成PDF文件有多种方法,其中最常用的几种方法包括使用FPDF、FPDI、TCPDF以及更现代的库如MPDF。下面将详细介绍这些方法,并提供示例代码。

使用FPDF生成PDF文件

FPDF是一个PHP类,可以用来生成PDF文件。它非常简单易用,适合生成简单的PDF文档。

<?php
require('fpdf.php');

$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial', 'B', 16);
$pdf->Cell(40, 10, 'Hello World!');
$pdf->Output('F', 'hello_world.pdf');
?>

使用FPDI生成PDF文件

FPDI(FPDF + PDFLIB2)可以用来读取现有的PDF文件,并在其上添加内容。这对于需要合并多个PDF文件或修改现有PDF内容的情况非常有用。

<?php
require('fpdi.php');

$pdf = new FPDI();
$pdf->AddPage();
$pdf->SetSourceFile('template.pdf');
$templateId = $pdf->importPage(1);
$pdf->useTemplate($templateId);
$pdf->SetXY(10, 10);
$pdf->SetFontSize(14);
$pdf->Write(0, 'Hello World!');
$pdf->Output('F', 'hello_world_with_template.pdf');
?>

使用TCPDF生成PDF文件

TCPDF是一个功能强大的PHP类,可以生成复杂的PDF文档。它支持多种字体、图像和图形的嵌入。

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

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Your Name');
$pdf->SetTitle('TCPDF Example');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');

$pdf->AddPage();
$pdf->SetFont('dejavusans', '', 14, '', true);
$txt = 'Hello world in TCPDF.';
$pdf->Write(0, $txt, '', 0, 'L', true, 0, false, false, 0);
$pdf->Output('F', 'hello_world_tcpdf.pdf');
?>

使用MPDF生成PDF文件

MPDF是一个现代的PHP库,提供了比FPDF、FPDI和TCPDF更多的功能。它支持HTML、CSS和JavaScript,可以轻松生成复杂的PDF文档。

<?php
require('vendor/autoload.php');

$mpdf = new \Mpdf\Mpdf();
$mpdf->WriteHTML('<h1>Hello World!</h1>');
$mpdf->Output('F', 'hello_world_mpdf.pdf');
?>

扩展与深化

  • 安全性:在生成PDF文件时,确保对输入数据进行验证和清理,以防止跨站脚本(XSS)攻击。
  • 性能优化:对于大型文档,考虑分批生成PDF文件,以减少内存使用和提高性能。
  • 国际化:使用UTF-8编码,确保生成的PDF文件支持多语言。