Печать таблиц HTML без разделения строки на две страницы - PullRequest
16 голосов
/ 05 июля 2011

Мне нужно напечатать некоторые данные в таблице HTML из Internet Explorer (различные версии) и Safari в OS X. На данный момент игнорируем Safari.

При печати таблицы, в которой больше строк, чем умещается на странице, последняя строка на странице часто разделяется на часть строки на первой странице и остальную часть строки на следующей странице.

Это выглядит некрасиво. Есть ли способ избежать этого?

Я искал вокруг и до сих пор нашел page-break-before: always, но я не уверен, что это то, что я ищу, так как я не буду знать заранее, сколько строк поместится на стр. например строки могут быть выше или короче в зависимости от содержимого, и пользователь может печатать в портретном или альбомном режиме. Я предполагаю, по крайней мере, A4, но если бы пользователь использовал букву США или другой размер бумаги, это внесло бы еще большую неопределенность. А как насчет полей принтера?

Так есть ли способ обойти это? Или мне просто нужно угадать, сколько строк уместится и заставить разрыв страницы после этого? Будет ли это даже работать?

Ответы [ 4 ]

12 голосов
/ 05 июля 2011

Вы, вероятно, хотите поиграть с page-break-before/after: auto.page-break-inside было бы идеально, но его не поддерживается большинством браузеров.

Посмотрите здесь http://www.westciv.com/style_master/academy/css_tutorial/advanced/printing.html для получения хорошей информации.

3 голосов
/ 05 июля 2011

Как насчет page-break-inside:avoid?

Кажется, много разговоров об этом, однако я также нашел другую ТАК статью упоминание page-break-before:auto и применение к каждой ячейке таблицы.

0 голосов
/ 02 апреля 2015

Существует несколько простых решений для предотвращения разрывов страниц в строках, но у них есть довольно большие ограничения, которые делают их бесполезными для чего-либо, кроме интранет-контента.

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

Мое любимое решение немного сложнее, но, вероятно, в итоге оно вызовет наименьшее количество головных болей.Он использует JavaScript, чтобы превратить каждую строку в отдельный неразрывный блок (но не таким образом, который влияет на внешний вид таблицы).Я опубликовал несколько ответов, которые используют эту технику:

0 голосов
/ 08 августа 2013

Чтобы избежать печати разделенных ячеек в Safari:

tr
{
    display: block;
    page-break-inside: avoid;
    -webkit-region-break-inside: avoid; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...