Как напечатать table на нескольких листах?

Добрый день. На странице имеется элемент table. При печати, если он не помещается на одном листе, то строка делится по полам и первая часть оказывается в конце первого листа, а вторая в начале второго листа.
Высота строк таблицы всегда разная. Как сделать, чтобы строка если не помещается на листе, переводилась на другой лист целиком?
  • Вопрос задан
  • 9600 просмотров
Пригласить эксперта
Ответы на вопрос 4
EnterSandman
@EnterSandman
Эникей
page-break-inside: avoid

для tr
Ответ написан
Комментировать
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
Для современных браузеров должно работать предложенное @EnterSandman
tr{page-break-inside: avoid;}

Увы, для webkit конкретно для display:table-xxx не работает. Работает для display:block, но ставить это для всех tr — чистой воды самоубийство.

Только JS-решения — определять высоту кусков таблицы и... Например, втыкать в месте разрыва tr (здесь с классом devide)
.devide{
	display:none;
	page-break-after:always;
}
.devide td{
	display:none;
}
@media print{
	.devide{
		display:block;
	}
}


Кстати, и thead, и tfoot при печати на каждом листе webkit также не выведет.
Ответ написан
sanchezzzhak
@sanchezzzhak
Ля ля ля...
Задайте для таблице при распечатке отдельный css и выберите оптимальное количество строк для таблице.

При распечатывание страницы можно задать отдельный css, который позволяет все не нужное скрыть оставить только важное!

<link media="print, handheld" rel="stylesheet" href="print.css">

Или
@media print {
}


в общем набросал побыстрому )

jsfiddle.net/g210px60/1

Можно через JS делить талицу большую и формировать html для распечатки
Ответ написан
Разбейте таблицу на несколько таблиц по листам, т.е. на каждом листе отдельная таблица.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы