Можно ли повторить данные столбца без заголовка после того, как строка разделена разрывом страницы?

У меня есть <table>, где каждый <tr> состоит из <td>, содержащего идентификатор группы, и <td colspan="3">, который содержит дополнительный <table> с множеством деталей для этой конкретной группы. Моя проблема в том, что когда таблица печатается и строка в основной таблице неизбежно разделяется, я получаю пустой столбец имени группы на следующей странице. Вот так...

#####################################################################
|Group Name| Detail 1 | Detail 2 | Detail 3 |
#####################################################################
| Name 1 |Detail 1.A |Detail 2.A |Detail 3.A |
| |_________________|_________________|____________________|
| |Detail 1.B |Detail 2.B |Detail 3.B |
| |_________________|_________________|____________________| | |Detail 1.C |Detail 2.C |Detail 3.C |
| |_________________|_________________|____________________|

#####################################################################
|Group Name| Detail 1 | Detail 2 | Detail 3 |
#####################################################################
| |Detail 1.D |Detail 2.D |Detail 3.D |
| |_________________|_________________|____________________| | |Detail 1.E |Detail 2.E |Detail 3.E |
|__________|_________________|_________________|____________________|
| Name 2 |Detail 1.A |Detail 2.A |Detail 3.A |
| |_________________|_________________|____________________|
| |Detail 1.B |Detail 2.B |Detail 3.B |
| |_________________|_________________|____________________| | |Detail 1.C |Detail 2.C |Detail 3.C |
| |_________________|_________________|____________________|

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

#####################################################################
|Group Name| Detail 1 | Detail 2 | Detail 3 |
#####################################################################
| Name 1 |Detail 1.A |Detail 2.A |Detail 3.A |
| |_________________|_________________|____________________|
| |Detail 1.B |Detail 2.B |Detail 3.B |
| |_________________|_________________|____________________| | |Detail 1.C |Detail 2.C |Detail 3.C |
| |_________________|_________________|____________________|

#####################################################################
|Group Name| Detail 1 | Detail 2 | Detail 3 |
#####################################################################
| Name 1 |Detail 1.D |Detail 2.D |Detail 3.D |
| |_________________|_________________|____________________| | |Detail 1.E |Detail 2.E |Detail 3.E |
|__________|_________________|_________________|____________________|
| Name 2 |Detail 1.A |Detail 2.A |Detail 3.A |
| |_________________|_________________|____________________|
| |Detail 1.B |Detail 2.B |Detail 3.B |
| |_________________|_________________|____________________| | |Detail 1.C |Detail 2.C |Detail 3.C |
| |_________________|_________________|____________________|

Заранее спасибо!!

РЕДАКТИРОВАТЬ
Когда я говорю, что основная таблица неизбежно разделяется, я имею в виду, что существуют группы с таким большим количеством деталей, что они не могут быть помещены на одной странице. Таким образом, даже если эти группы должны были быть первой строкой на странице, они все равно перетекли бы на дополнительные страницы, а столбец имени группы был бы разделен.


person BBC    schedule 02.07.2014    source источник
comment
Я бы сказал, что очевидный ответ - да, но недостаточно информации, чтобы посоветовать, как это сделать. Каким образом основная таблица неизбежно разбивается? Что вы используете для печати таблицы?   -  person Justin    schedule 03.07.2014
comment
Я имею в виду, что к некоторым строкам имен групп применяется так много деталей, что они не могут содержаться на одной странице. Таким образом, даже если эта строка является первой на странице, она все равно будет перетекать на дополнительные страницы.   -  person BBC    schedule 03.07.2014


Ответы (1)


В прошлом у меня были аналогичные проблемы с печатью HTML.

Я не нашел способа добиться именно того, чего вы хотите, но в качестве альтернативного предложения вы можете попробовать стиль css page-break-inside: avoid для каждого тега <tr>, чтобы не допускать разрывов страниц внутри строки. Таким образом, если строка будет разделена на две страницы, разрыв страницы должен фактически произойти перед строкой, что позволит избежать проблемы. Может быть даже предпочтительнее не разбивать строки по страницам?

Ссылка: http://www.w3schools.com/cssref/pr_print_pagebi.asp

NB прошло много времени с тех пор, как я играл с этим, но я помню, что старые версии IE не хотели играть в мяч ... вам может потребоваться протестировать в нескольких браузерах!

person PulseLab    schedule 02.07.2014
comment
Моя проблема в том, что некоторые строки настолько велики, что их нельзя разместить на одной странице, поэтому их придется разделить. Пока я пишу это для использования в IE8 (не мой выбор), я тестирую в FF и Chrome с теми же результатами. - person BBC; 03.07.2014
comment
Хм, в этом случае я, конечно, не знаю о чистом решении CSS. Если вы знаете размер своей страницы и область печати (потенциально большое «если», я знаю), вы можете вычислить, где могут быть разрывы страниц в javascript / jQuery, а затем добавить дополнительные абсолютно позиционированные заголовки в столбец группы. Вы можете поместить их в класс css с @media print на них, чтобы они отображались только на печати, а не на экране. Возможно, проблемное решение! - person PulseLab; 03.07.2014
comment
Я разберусь с этим, но это может быть больше проблем, чем того стоит. Это не обязательно, это больше я пытаюсь успокоить свои собачьи мозоли. Кажется, что должно быть решение, но после нескольких часов онлайн-поиска я чувствую, что я первый и единственный человек, у которого есть эта проблема. - person BBC; 03.07.2014
comment
Если это хоть как-то утешает, у меня была эта проблема много лет назад в среде, где разбиение строк было большим делом (могло привести к неправильному прочтению информации, что могло привести к проблемам с безопасностью пациентов). Это было еще до StackOverflow! Тогда тоже не было отличного решения. Я считаю, что единственный верный способ - это иметь представление о размерах того, что вы печатаете, и о носителе, на котором вы это печатаете. Нет настоящего автоматического способа использования подобных HTML / CSS. Некоторые сторонние библиотеки HTML-to-PDF включают в себя различные умные средства для решения подобных задач, но это ужасно. - person PulseLab; 03.07.2014