当前位置: 技术文章>> 详细介绍PHP 如何生成 PDF 文件?

文章标题:详细介绍PHP 如何生成 PDF 文件?
  • 文章分类: 后端
  • 8378 阅读
文章标签: php php基础

在 PHP 中生成 PDF 文件,有几种流行的库和框架可以帮助你完成这个任务。其中一些流行的库包括 FPDF、TCPDF、Dompdf 和 Mpdf。每个库都有其特点和适用场景,下面我将详细介绍如何使用 FPDF 和 Dompdf 来生成 PDF 文件。

1. 使用 FPDF

FPDF(Free PDF)是一个用 PHP 编写的类,允许你生成 PDF 文件。它提供了一组简单的函数来构建 PDF 文档的各个部分,如页眉、页脚、文本、图形和图像等。

安装 FPDF

你可以通过 Composer 来安装 FPDF,或者直接从 FPDF 官网 下载源码并包含到你的项目中。

示例代码

require('fpdf.php');

class PDF extends FPDF
{
    // 页眉
    function Header()
    {
        // Logo
        $this->Image('logo.png',10,6,30);
        // Arial bold 15
        $this->SetFont('Arial','B',15);
        // 移动到右侧
        $this->Cell(80);
        // 标题
        $this->Cell(30,10,'标题',1,0,'C');
        // 线条
        $this->Ln(20);
    }

    // 页脚
    function Footer()
    {
        // 位置
        $this->SetY(-15);
        // Arial italic 8
        $this->SetFont('Arial','I',8);
        // 页码
        $this->Cell(0,10,'页面 '.$this->PageNo().'/{nb}',0,0,'C');
    }

    // 页面内容
    function ChapterBody($num)
    {
        // 添加文本
        for($i=1;$i<=$num;$i++)
            $this->Cell(0,10,'这是第 '.$i.' 行',0,1);
    }

    // 主函数
    function Chapter1()
    {
        $this->SetFont('Times','',12);
        $this->ChapterBody(20);
    }
}

// 创建 PDF 实例
$pdf = new PDF();
$pdf->AddPage();
$pdf->Chapter1();
$pdf->Output();

2. 使用 Dompdf

Dompdf 是一个基于 HTML 的 PDF 生成器,它能够将 HTML 和 CSS 转换成 PDF 文件。这意味着你可以使用 PHP 来生成 HTML 内容,然后使用 Dompdf 来将其转换为 PDF。

安装 Dompdf

你可以通过 Composer 来安装 Dompdf:

composer require dompdf/dompdf

示例代码

<?php
require_once "vendor/autoload.php";

use Dompdf\Dompdf;

// HTML 内容
$html =
    '<html><body>'.
    '<h1>Welcome to my PDF!</h1>'.
    '<p>This is a paragraph with <strong>bold</strong> and <em>italic</em> text.</p>'.
    '</body></html>';

// 实例化并加载 HTML
$dompdf = new Dompdf();
$dompdf->loadHtml($html);

// (可选) 设置纸张大小和方向
$dompdf->setPaper('A4', 'portrait');

// 渲染 PDF
$dompdf->render();

// 输出 PDF 到浏览器
$dompdf->stream("sample.pdf");

总结

FPDF 和 Dompdf 是 PHP 中生成 PDF 文件的两种流行方法。FPDF 提供了丰富的函数来直接操作 PDF 文档的结构,而 Dompdf 则利用 HTML 和 CSS 来生成 PDF,这对于熟悉 Web 开发的开发者来说可能更加直观。根据你的具体需求(如是否需要复杂的布局或是否更喜欢使用 HTML/CSS)来选择最适合你的库。

推荐文章