FPDF/FPDI UseTemplate

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

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

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);
    }
}
Другие вопросы по тегам