Как разделять страницы при выводе отчета
Доброго времени суток.
Не подскажите метод решения постраничного вывода отчета на печать. Проблема в том что отчет - страниц этак на 6, выводится сплошным потоком. И получает что строка начинается на одной странице, а заканчивается на другой. Образуется разрыв, которого не должно быть. Может быть есть алгоритмы или готовые решения как лимитировать количество строк выводимых на страницу чтобы они не выходили за границу страницы. При этом заранее нельзя спрогнозировать сколько строк будет на конкретной странице, так как текст находящийся в одной строке может быть слишком большим и получится что в строке таблицы находятся две строки текста. То есть тут как минимум необходимо вычислять координаты нижнего бордюра каждой строки чтобы выставлять флаг - делать разрыв или нет. |
|
спасибо конечно.
но большинство этого великолепия в IE 6.0 не поддерживается. Поэтому разрывать строчки в таблице не получится и нужно будет для каждой страницы формировать новую таблицу. А чтобы знать когда в поток документа вставлять /table tableнужно каким то образом вычислять высоту очередной сформированной страницы, чтобы не выходить за рамки листа. Вот над этим я и бьюсь. |
Похожая ситуация и у меня. Только на страницу выводятся чертежи (их несколько), сделанные из div'ов , у каждого position: absolute;, то есть они никак не влияют на положение всех остальных элементов страницы, а располагается именно там где нужно (по атрибутам left и top). Мне нужно чтобы чертежи, при печати не разбивались на половинки, а выводились целиком, например по два на страницу.
Я пробовал вставлять <br style="page-break-after: always"> в месте требуемого разрыва страницы, но ничего не помогло. Грешу на position: absolute. Может быть кто сталкивался с такой проблемой? |
При выводе на печать, страница часто ведёт себя не предсказуемо. Первое, что нужно сделать - установить для HTML и BODY стиль width:800px;
Если нужно выводить элемент больше этого - ставим width:100% (ну или меньше), чтобы уместить на одном листе. Все лишние элементы убирайте. Используйте отдельный файл стилей для печати, либо генерируйте отдельную страницу - сэкономите кучу нервов:) |
так и есть, на странице ничего лишнего, создается только для печати
да вот только как подгадать в каком месте что расположить чтобы ничего не заполовинилось. Разные браузеры по разному могут вывести, да еще настройка печати может отличаться. |
Цитата:
На 96 dpi (макось) это будет 211,5 мм, на 72 dpi (винды) — 282 мм. Учитывая, что ширина А4 210 мм, и то и другое значение несколько странно. B~Vladi, разъясните, пожалуйста. Мой совет как (быдло-)верстака: хотите сделать документ для печати, сделайте pdf. |
Цитата:
|
Часовой пояс GMT +3, время: 02:54. |