Intereting Posts
php date_diff в часах Как программно «нажимать» кнопку «Как» через приложение Facebook? Проверьте, нравится ли пользователю фан-страница Отправить массив с помощью скрипта Ajax для PHP Печать многомерного массива с использованием цикла Foreach Справка по этому сообщению об ошибке> неожиданный T_OBJECT_OPERATOR Laravel: путь к папке хранения Автоматическое обновление с помощью ajax / jQuery после первоначальной формы submit, затем изменение названия страницы Получить tt_content uid Загрузка php и jquery мгновенно загружает изображение и предварительный просмотр php получает первую часть почтового индекса Отображение 11 последовательных строк из запроса, где средняя строка содержит переменную Как создать класс фасада с помощью Laravel? Можете ли вы присвоить значения константам с знаком равенства после использования, определенных в php? Как получить имя класса в PHP?

Проблема с перерывом страницы fpdf

У меня есть этот цикл, который печатает 6 строк (многорежим) примерно 30 раз. Проблема заключается в том, что, когда он достигает нижней страницы, он печатает 2 или 3 строки из многоразового набора, а на следующей странице он печатает остальные 3 строки. Я хочу, чтобы он распечатывал все 6 строк на следующей странице, если на текущей странице недостаточно места для всех 6 строк. Я использую этот код:

$height_of_cell = 60; mm $page_height = 279.4; // mm (portrait letter) $bottom_margin = 20; // mm $space_left = $page_height - $p->GetY(); // space left on page $space_left -= $bottom_margin; // less the bottom margin if ( $height_of_cell >= $space_left) { $p->Ln(); $p->AddPage(); // page break $p->Cell(100,5,'','B',2); // this creates a blank row for formatting reasons } 

но это не сработает. Любые решения? Благодаря!

Используйте GetY, чтобы получить текущую позицию, вычтите ее из высоты вашего документа. Если это меньше, чем 6x (у вас есть 6 строк), ваша высота в многорежимной последовательности , а затем принудительно перерыв страницы с помощью AddPage .

Я знаю, что вы это исправили, но в интересах кого-то еще, это должно дать широкую идею.

 <?php $p = new FPDF(); $p->AddPage(); $p->SetFont('Arial','B',16); $p->SetAutoPageBreak(false); $height_of_cell = 60; // mm $page_height = 286.93; // mm (portrait letter) $bottom_margin = 0; // mm for($i=0;$i<=100;$i++) : $block=floor($i/6); $space_left=$page_height-($p->GetY()+$bottom_margin); // space left on page if ($i/6==floor($i/6) && $height_of_cell > $space_left) { $p->AddPage(); // page break } $p->Cell(100,10,'This is a text line - Group '.$block,'B',2); endfor; $p->Output(); ?>