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

FPDF技术咨询:如何在导入的多页PDF模板指定页面及位置放置文本

在FPDF(结合FPDI)中给导入的PDF模板指定页面添加内容

嘿,我来帮你搞定这个问题!原生FPDF本身不支持导入现有PDF模板,所以我们需要搭配FPDI(FPDF的扩展工具)来实现给指定页面添加内容的需求。下面是具体的实现步骤和代码示例,完美匹配你要在第3页放'toto'、第5页放'titi'的需求:

核心实现代码

首先确保你已经下载并引入了FPDF和FPDI的类文件,然后用以下代码操作:

// 引入必要的类文件(路径根据你的实际存放位置调整)
require_once('fpdf/fpdf.php');
require_once('fpdi/fpdi.php');

// 创建FPDI实例
$pdf = new FPDI();

// 导入你的5页PDF模板,获取总页数
$templatePath = '你的模板文件.pdf';
$totalPages = $pdf->setSourceFile($templatePath);

// 循环处理每一页
for ($pageNum = 1; $pageNum <= $totalPages; $pageNum++) {
    // 导入当前模板页,并添加到新PDF中
    $templatePageId = $pdf->importPage($pageNum);
    $pdf->AddPage();
    $pdf->useTemplate($templatePageId);

    // 判断当前页是否是需要添加内容的页面
    if ($pageNum === 3) {
        // 设置文本位置:X=50,Y=100(左上角为原点,X向右、Y向下递增,可按需调整)
        $pdf->SetXY(50, 100);
        // 设置字体(可选,这里用Arial常规12号)
        $pdf->SetFont('Arial', '', 12);
        // 写入文本'toto'
        $pdf->Write(0, 'toto');
    } elseif ($pageNum === 5) {
        $pdf->SetXY(30, 80); // 自定义第5页的文本位置
        $pdf->SetFont('Arial', 'B', 14); // 设置加粗14号字体
        $pdf->Write(0, 'titi');
    }
}

// 输出处理后的PDF:'I'表示在浏览器打开,'D'是下载,'F'是保存到服务器
$pdf->Output('修改后的模板.pdf', 'I');

关键注意点

  • 必须用FPDI:原生FPDF只能创建全新PDF,无法导入现有模板,FPDI专门解决这个场景的需求,要确保两者版本兼容。
  • 坐标调整:FPDF的坐标原点在页面左上角,你可以通过多次测试微调SetXY()的参数,找到模板上的精准位置。
  • 字体设置:添加文本前最好显式设置字体,避免使用默认字体可能出现的显示问题。
  • 加密模板处理:如果你的PDF模板是加密的,需要先解密才能进行导入和修改操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:11:49