Ответ 1
По той же самой проблеме я использовал это обходное решение:
table {
-fs-table-paginate: paginate;
border-spacing: 0;
}
Это сработало для меня, мой thead
повторяется на каждой странице.
Теперь я использую xhtmlrenderer для скрытого html в PDF. Моя зависимость от maven выглядит следующим образом:
<dependency>
<groupId>org.mvel</groupId>
<artifactId>mvel2</artifactId>
<version>2.1.0.drools2</version>
<scope>compile</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.xhtmlrenderer</groupId>
<artifactId>core-renderer</artifactId>
<version>R8</version>
<scope>compile</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>2.0.8</version>
<scope>compile</scope>
<optional>true</optional>
</dependency>
Я пытаюсь повторить заголовок таблицы на каждой странице PDF. Поэтому я использую css
:
table {
-fs-table-paginate: paginate;
}
. Объяснение для CSS: здесь.
-fs-table-paginate
при использовании со значением (-fs-table-paginate) paginate, изменяет расположение таблицы алгоритм для повторения верхних и нижних колонтитулов на последующих страницах и улучшить внешний вид ячеек, которые разбиваются по страницам (например, закрывая и открывая границы), но все это делает. Если минимальная ширина таблицы шире, чем страница, она будет отрублена.
При добавлении вышеуказанного css мои границы таблицы отделяются.
Итак, я думаю, что table { -fs-table-paginate: paginate;
сделал мою таблицу border-collapse:collapse
недействительной.
Итак, что я могу сделать, чтобы исправить ошибку, заставить границы таблицы свернуть?
Мое приложение CSS для таблицы следующим образом
table{
border:1px solid #000000;
border-collapse:collapse;
-fs-table-paginate: paginate;}
table td{
border:1px solid #000000;
word-wrap:break-word;
white-space:normal;
overflow:hidden;
text-align:left;
line-height:16px;
height:16px;
}
table tr{
page-break-inside:avoid;
}
table thead tr th{
background:#f2f2f2;
border:1px solid #000000;
text-align:center;
}
table tr th{
background:#f2f2f2;
border:1px solid #000000;
text-align:center;
}
И когда add -fs-table-paginate: paginate;
когда-нибудь заголовок таблицы будет не нормальным. Заголовок не будет корректно отображаться. И под заголовком таблицы будет увеличена дополнительная пустая строка. Как показано ниже:
Кто-нибудь знает идеи?
По той же самой проблеме я использовал это обходное решение:
table {
-fs-table-paginate: paginate;
border-spacing: 0;
}
Это сработало для меня, мой thead
повторяется на каждой странице.
Да... вы правы...
border-collapse: collapse и -fs-table-paginate: невозможно использовать paginate вместе. border-collapse reset для разделения, когда для параметра -fs-table-paginate установлено значение постраничный...
Итак, лучший способ реализовать заголовок таблицы - это использовать... это может помочь вам...
Обходной путь, который работал у меня:
Инициализировать все th
и td
один за другим с помощью рамки, установленной на 0px: border: 0px;
И затем примените границу, где они вам нужны:
<td style="border: 0px; border-left: 1px solid #ddd;">some texte</td>
Конечно, я даю -fs-table-paginate: paginate;
в стиле таблицы.
Рабочий пример html: https://gist.github.com/laguiz/5509461
Вот результат: