Разрыв страницы (или разрыв таблицы?), чтобы получить хорошо отформатированный PDF

Я разработал интранет на CakePHP, который в одной части генерирует собственный PDF-файл с использованием DOMPDF. Проблема в том, что у меня есть поле memo (текст mysql), которое я печатаю после получения результата от функции PHP nl2br.

Проблема в том, что в некоторых случаях этот текст слишком длинный (даже при размере шрифта: 6 пикселей), и мне нужен какой-то способ сделать разрыв страницы (снова получить верхний и нижний колонтитулы и т. д.)... или, может быть, хороший способ чтобы получить второй столбец, чтобы продолжить текст внутри.

Любые идеи?


person iker    schedule 15.03.2010    source источник
comment
Я думаю, что этот вопрос лучше всего задать знающим людям DOMPDF. Не могли бы вы добавить тег pdf? Надеюсь, есть какой-то атрибут, который вы можете добавить в DOM, который позволит DOMPDF разделить там страницу.   -  person Felix    schedule 16.03.2010


Ответы (3)


Получено от Google, http://www.digitaljunkies.ca/dompdf/faq.php#page_break . Однако это не решает второстепенный вопрос, касающийся повторяющихся верхнего и нижнего колонтитула. Что-то вроде http://www.xefteri.com/articles/show.cfm?id=26 может помочь в этом (не рекомендуется).

person Iiridayn    schedule 17.03.2010

Ваш заголовок находится вокруг поля для заметок? Если это так, вы можете поместить свое поле заметки в таблицу и использовать раздел thead/tfoot для верхнего/нижнего колонтитула. Когда таблица переходит на вторую страницу, она должна отображаться снова (хотя я считаю, что есть проблемы с обработкой tfoot).

Если это верхние и нижние колонтитулы документа, вы можете использовать встроенный PHP (см. также FAQ). Или, если вы используете последнюю версию (0.6.0 alpha 2) и готовы к исправлению, вы можете добавить поддержку фиксированного позиционирования и использовать ее для создания верхнего/нижнего колонтитула.

Дополнительную информацию см. на сайте разработчиков DOMPDF.

Если у вас есть образец документа, может быть проще визуализировать проблему.

person BrianS    schedule 18.03.2010

Вы можете сделать это двумя способами

Один из них использует раздел, на разрывах страниц dompdf будет повторять заголовок. Вы можете принудительно установить разрыв страницы, используя атрибут CSS page-break-before:always.

Второй вариант — использовать PHP для рисования верхнего/нижнего колонтитула с помощью функции $pdf->page_text(), подобной этой http://www.digitaljunkies.ca/dompdf/faq.php#footers

person Fernando Gallego    schedule 14.06.2010