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

使用FPDF与FPDI编辑PDF时遭遇Class 'setasign\Fpdi\FpdfTpl'未找到错误

解决FPDI中"Class 'setasign\Fpdi\FpdfTpl' not found"报错问题

嘿,我之前也踩过这个坑!这个错误本质是FPDI依赖的核心类没被正确加载,大概率是你引入文件的顺序或者路径出问题了,咱们一步步来搞定:

核心问题:自动加载机制没生效

你现在的代码先手动引入了Fpdf.php和Fpdi.php,再加载autoload.php,这顺序完全搞反了!autoload.php的作用就是自动帮你加载所有需要的类(包括FpdfTpl),手动提前引入单个文件会打乱这个加载逻辑。

第一步:修正文件引入顺序

把代码开头改成这样,直接用自动加载搞定所有依赖:

// 先加载自动加载文件,它会处理所有类的引入
require_once('fpdi/src/autoload.php');
// 再引入FPDI的命名空间
use setasign\Fpdi\Fpdi;

别再手动引入fpdf.php和Fpdi.php了,autoload.php会自动找到它们。

第二步:检查文件结构是否完整

确认你的fpdi/src目录里确实有FpdfTpl.php这个文件,如果没有,说明你下载的FPDI包不完整,得重新下载包含所有核心文件的版本。正常的目录结构应该是这样:

你的项目目录/
├── fpdf/
│   └── fpdf.php
├── fpdi/
│   └── src/
│       ├── autoload.php
│       ├── Fpdi.php
│       ├── FpdfTpl.php
│       └── 其他FPDI相关类文件
└── 你的脚本.php

第三步:补全PDF编辑代码

看你的代码写到一半断了,给你补全完整的编辑流程,确保能正常导入并编辑PDF:

require_once('fpdi/src/autoload.php');
use setasign\Fpdi\Fpdi;

// 初始化FPDI
$pdf = new Fpdi();
// 添加一页(也可以直接导入原PDF的页面)
$pdf->AddPage();
// 指定要编辑的源PDF文件
$pdf->setSourceFile('documento.pdf');
// 导入第1页
$tplIdx = $pdf->importPage(1);
// 将导入的页面作为模板放到当前页面,参数是模板ID、X坐标、Y坐标、宽度
$pdf->useTemplate($tplIdx, 10, 10, 190);

// 这里添加你要编辑的内容,比如插入文字
$pdf->SetFont('Arial', '', 12);
$pdf->SetTextColor(0, 0, 0);
$pdf->SetXY(30, 30);
$pdf->Write(0, '这里是我添加的自定义内容!');

// 输出PDF,'I'表示在浏览器打开,'D'是下载,'F'是保存到服务器
$pdf->Output('编辑后的文档.pdf', 'I');

额外注意点

  • 确保documento.pdf的路径正确,如果和脚本不在同一目录,就用绝对路径(比如C:\wamp\www\Ale\documento.pdf)。
  • 如果是用Composer安装的FPDI,直接引入vendor/autoload.php就行,更省心,不需要手动下载FPDF和FPDI的文件。

内容的提问来源于stack exchange,提问作者Alejandro Piñero

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:12:50