Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.12.2008, 04:51
Аспирант
Отправить личное сообщение для ilshat Посмотреть профиль Найти все сообщения от ilshat
 
Регистрация: 28.07.2008
Сообщений: 67

Как разделять страницы при выводе отчета
Доброго времени суток.

Не подскажите метод решения постраничного вывода отчета на печать.

Проблема в том что отчет - страниц этак на 6, выводится сплошным потоком. И получает что строка начинается на одной странице, а заканчивается на другой. Образуется разрыв, которого не должно быть.

Может быть есть алгоритмы или готовые решения как лимитировать количество строк выводимых на страницу чтобы они не выходили за границу страницы. При этом заранее нельзя спрогнозировать сколько строк будет на конкретной странице, так как текст находящийся в одной строке может быть слишком большим и получится что в строке таблицы находятся две строки текста. То есть тут как минимум необходимо вычислять координаты нижнего бордюра каждой строки чтобы выставлять флаг - делать разрыв или нет.
Ответить с цитированием
  #2 (permalink)  
Старый 02.12.2008, 08:14
...
Отправить личное сообщение для Zibba Посмотреть профиль Найти все сообщения от Zibba
 
Регистрация: 13.10.2008
Сообщений: 225

Думаю Вам поможет:
http://habrahabr.ru/blogs/css/38307/
http://habrahabr.ru/blogs/css/43487/
Ответить с цитированием
  #3 (permalink)  
Старый 02.12.2008, 10:50
Аспирант
Отправить личное сообщение для ilshat Посмотреть профиль Найти все сообщения от ilshat
 
Регистрация: 28.07.2008
Сообщений: 67

спасибо конечно.
но большинство этого великолепия в IE 6.0 не поддерживается.
Поэтому разрывать строчки в таблице не получится и нужно будет для каждой страницы формировать новую таблицу.
А чтобы знать когда в поток документа вставлять
/table
table
нужно каким то образом вычислять высоту очередной сформированной страницы, чтобы не выходить за рамки листа. Вот над этим я и бьюсь.

Последний раз редактировалось ilshat, 02.12.2008 в 10:55.
Ответить с цитированием
  #4 (permalink)  
Старый 09.12.2009, 22:48
Интересующийся
Отправить личное сообщение для format1981 Посмотреть профиль Найти все сообщения от format1981
 
Регистрация: 22.10.2009
Сообщений: 22

Похожая ситуация и у меня. Только на страницу выводятся чертежи (их несколько), сделанные из div'ов , у каждого position: absolute;, то есть они никак не влияют на положение всех остальных элементов страницы, а располагается именно там где нужно (по атрибутам left и top). Мне нужно чтобы чертежи, при печати не разбивались на половинки, а выводились целиком, например по два на страницу.

Я пробовал вставлять <br style="page-break-after: always"> в месте требуемого разрыва страницы, но ничего не помогло. Грешу на position: absolute. Может быть кто сталкивался с такой проблемой?
Ответить с цитированием
  #5 (permalink)  
Старый 09.12.2009, 23:49
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

При выводе на печать, страница часто ведёт себя не предсказуемо. Первое, что нужно сделать - установить для HTML и BODY стиль width:800px;

Если нужно выводить элемент больше этого - ставим width:100% (ну или меньше), чтобы уместить на одном листе. Все лишние элементы убирайте. Используйте отдельный файл стилей для печати, либо генерируйте отдельную страницу - сэкономите кучу нервов
Ответить с цитированием
  #6 (permalink)  
Старый 09.12.2009, 23:55
Интересующийся
Отправить личное сообщение для format1981 Посмотреть профиль Найти все сообщения от format1981
 
Регистрация: 22.10.2009
Сообщений: 22

так и есть, на странице ничего лишнего, создается только для печати
да вот только как подгадать в каком месте что расположить чтобы ничего не заполовинилось. Разные браузеры по разному могут вывести, да еще настройка печати может отличаться.
Ответить с цитированием
  #7 (permalink)  
Старый 10.12.2009, 01:13
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Сообщение от B~Vladi Посмотреть сообщение
установить для HTML и BODY стиль width:800px


На 96 dpi (макось) это будет 211,5 мм, на 72 dpi (винды) — 282 мм. Учитывая, что ширина А4 210 мм, и то и другое значение несколько странно. B~Vladi, разъясните, пожалуйста.

Мой совет как (быдло-)верстака: хотите сделать документ для печати, сделайте pdf.
Ответить с цитированием
  #8 (permalink)  
Старый 10.12.2009, 10:24
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от subzey
На 96 dpi (макось) это будет 211,5 мм, на 72 dpi (винды) — 282 мм. Учитывая, что ширина А4 210 мм, и то и другое значение несколько странно. B~Vladi, разъясните, пожалуйста.
Чё разьяснять?! Практика показывает...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать какие ошибки произошли при парсинге xml файла faunder Events/DOM/Window 0 12.09.2008 14:17
Как переместиться в начало страницы или к закладке? f_gor Общие вопросы Javascript 2 03.09.2008 23:00
Подскажите как при помощи JS hta в трею свернуть kimboo Общие вопросы Javascript 4 11.07.2008 16:00
Изменение шапки при обновлении страницы nasty blood (X)HTML/CSS 0 07.04.2008 13:13
Срабатывание скрипта при загрузке страницы bormax Общие вопросы Javascript 3 03.04.2008 09:57