FPDF / FPDI UseTemplate

时间:2012-08-24 15:45:11

标签: fpdf fpdi

我正在使用FPDI& FPDF在现有PDF上叠加新文本。它使用useTemplate()方法来实现这一点。

我遇到的问题 - 它只将模板应用到第一页。如果文本很长,它将使用SetAutoPageBreak()方法换行到第二页。如何在每个页面上应用模板?

1 个答案:

答案 0 :(得分:5)

我已经破解了它。查看代码,我意识到即使是SetAutoPageBreak()例程也会在内部调用AddPage(),为我提供了在每个页面上包含模板所需的钩子。

因此,我扩展了基础FPDI类并过度使用了AddPage()方法,包括useTemplate()。

class BBPDF extends FPDI {
    function AddPage($orientation='', $size='') {
        parent::AddPage($orientation,$size);
        $this->setSourceFile('templates/discover-community.pdf');
        $template = $this->ImportPage(1);
        $this->useTemplate($template);
    }
}