Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Вставить разрыв страницы


Автор: yngwie19 10.11.2009, 19:16
Здравствуйте. У меня печатается большая таблица, которая при печати занимает около 5 листов А4. Возможно ли вставить в определенном месте разрыв станицы ?  Моя таблица может иметь строки разной высоты, поэтому скорее всего нужно отсчитывать от нижнего края листа, как Вы считаете как лучше сделать подобную задачу? 

Автор: youri 11.11.2009, 04:03
вставить разрыв страницы при печати?

Автор: yngwie19 11.11.2009, 08:06
youri, да именно при печати.

Автор: Любитель 11.11.2009, 08:19
Несовсем понятно, причём тут яваскрипт - разрывы лучше "пометить" на этапе создания (вручную или генерации - неважно) хтмл. В CSS есть свойство page-break-before. Ставите класс page-break на часть строк таблицы (вопрос "на какие" - это уже другой вопрос) и прописываете:
Код

@media print
{
    .page-break { page-break-before: always }
}

Автор: bars80080 11.11.2009, 10:40
Цитата(Любитель @  11.11.2009,  07:19 Найти цитируемый пост)
 (вопрос "на какие" - это уже другой вопрос) 

именно, исходя из этого вопроса топикстартер и был перенаправлен из раздела серверного языка.

где легче отследить высоту полученной таблицы? на сервере или на клиенте?
при условии, что высоты строк разные

Автор: Любитель 11.11.2009, 12:10
Просто тут два вопроса:
1. Как сказать браузеру, что сделать разрыв. Это вопрос вёрстки, вопрос css.
2. Как разбить таблицу на страницы. Это (в 99% случаев) вопрос алгоритма, реилзуемого на server-side.
К JS ни то, ни то отношения не имеет (иногда имеет 2-е, но это оч редкие случаи).

Автор: bars80080 11.11.2009, 15:15
в данном случае вопрос касается 
Цитата(yngwie19 @  11.11.2009,  07:06 Найти цитируемый пост)
да именно при печати

как расчитать на сервере высоту таблицы, при учёте стилей - не знаю. тут даже посчёт символом не поможет, будут заданы слишком большие отступы, поля или шрифт и всё. это именно вопрос клиентской стороны

тут ведь можно взять offsetHeight и тому подобное

Автор: youri 11.11.2009, 18:47
Цитата(yngwie19 @  10.11.2009,  19:16 Найти цитируемый пост)
Возможно ли вставить в определенном месте разрыв станицы ?

по какому принципу и зачем нужно вставлять разрывы страницы?

Автор: yngwie19 11.11.2009, 19:04
youri, у меня печатается большая таблица, все строки этой таблицы соответственно не помещаются на одну страницу - поэтому происходит переход на следующую. Проблема заключается в том что браузер при печати не различает строки таблицы, а просто переносит на следующую. Следовательно если строка имеет определенную ширину, то она прерывается и ее оставшаяся часть печатается на другой. Выглядит это не очень красиво. Поэтому нужно отслеживать если вся строка целиком не помещается - то часть не надо ее часть печатать на этой странице, а нужно перенести всю строку целиком на следующую.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)