You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Fpdf与Fpdi无法完成PDF简单修改的问题求助

FPDI导入PDF并添加文本的可运行示例及错误解决方案

错误原因分析

你遇到的Class "setasign\src\FpdfTpl" not found错误,大概率是以下原因之一:

  • 未通过Composer正确安装FPDI及其依赖包,导致类文件路径或命名空间不匹配
  • 手动下载的文件未正确配置,命名空间结构混乱
  • 代码中未引入自动加载文件,或类的引用路径错误

正确安装步骤(新手推荐用Composer)

  1. 确保你的环境已安装Composer
  2. 在项目根目录执行命令:
composer require setasign/fpdi-fpdf

这个命令会自动安装FPDI和它依赖的FPDF库,同时处理好命名空间和自动加载配置。

可运行的基础示例代码

<?php
// 引入Composer自动加载文件,必须放在代码最开头
require_once 'vendor/autoload.php';

// 使用正确的命名空间
use setasign\Fpdi\Fpdi;

// 初始化FPDI对象
$pdf = new Fpdi();

// 导入现有PDF文件(替换为你的PDF路径)
$pageCount = $pdf->setSourceFile('your-existing-document.pdf');

// 循环处理每一页
for ($pageNo = 1; $pageNo <= $pageCount; $pageNo++) {
    // 获取当前页的模板ID
    $templateId = $pdf->importPage($pageNo);
    // 添加一页,尺寸和导入的页面一致
    $pdf->AddPage();
    // 使用模板填充当前页
    $pdf->useTemplate($templateId);

    // 在页面上添加文本(示例:在坐标(10,10)处添加黑色12号字体的文本)
    $pdf->SetFont('Arial', '', 12);
    $pdf->SetTextColor(0, 0, 0);
    $pdf->Text(10, 10, '这是添加的新文本');
}

// 输出处理后的PDF(可以选择保存到文件或直接在浏览器显示)
$pdf->Output('D', 'modified-document.pdf');

手动安装的解决方案(不推荐新手)

如果你坚持手动下载文件:

  • 从官方下载FPDI和FPDF的最新版本
  • 确保FPDI的文件结构完整,setasign/Fpdi目录下的文件正确放置
  • 在代码中手动引入FPDF和FPDI的核心文件:
<?php
require_once 'fpdf/fpdf.php';
require_once 'fpdi/src/Fpdi.php';

// 后续代码和上面的示例一致,注意不需要use命名空间(如果手动下载的是无命名空间版本)

注意:手动版本可能存在命名空间兼容问题,优先推荐Composer安装

常见问题排查

  • 确认vendor/autoload.php路径正确,和你的代码文件位置匹配
  • 检查PDF文件路径是否正确,确保PHP有读取该文件的权限
  • 如果使用框架,确保Composer自动加载已正确集成到框架中

内容的提问来源于stack exchange,提问作者Laurent

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 01:32:14