Шаблон использования FPDF/FPDI

Я использую FPDI и FPDF для наложения нового текста поверх существующего PDF. Для этого используется метод useTemplate().

У меня проблема - он применяет шаблон только к первой странице. Если текст длинный, он будет перенесен на вторую страницу с помощью метода SetAutoPageBreak(). Как я могу заставить его применять шаблон на каждой странице?


person Matt Fletcher    schedule 24.08.2012    source источник


Ответы (1)


Я взломал его. Изучив код, я понял, что даже подпрограмма 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);
    }
}
person Matt Fletcher    schedule 28.08.2012