Как предотвратить разрыв страницы в элементе <th>при преобразовании xml в html в pdf - PullRequest
0 голосов
/ 16 января 2019

Я использую XSLT для преобразования XML-кода в HTML, чтобы затем я мог преобразовать его в PDF-файл для загрузки. Я использую CSS в XSLT для кодирования HTML, поэтому, когда XML проходит через XSLT, он получается в виде совершенно костюмированного HTML-кода, который я затем конвертирую в PDF.

Весь код разделен на таблицы, и я хочу, чтобы элементы в коде не ломались. Он отлично смотрится только на html, потому что он не разделен на страницы, но когда я конвертирую его в PDF, проблемы начинают проявляться, и многие теги, предоставляющие заголовок таблицы, обрезаются пополам и отображаются на разных страницах. Как это

https://imgur.com/a/UDtDmFk

Как видите, заголовок "Acontecimentos Especiais" разделен на 2 разные страницы.

Я пытался использовать все разрывы страниц внутри CSS, например:

-page-break-inside: избегать;

-page-break-before: избегать;

-page-break-after: избегать;

Я пытался использовать их в разных тегах CSS, я пробовал их в теге th, и это не работает. Я попробовал их внутри тега таблицы, и он работает, но PDF имеет длину почти 25 страниц, и это просто создает ОЧЕНЬ пустое пространство между таблицами, чтобы он мог уместиться на всю таблицу внутри страницы, и это еще больше ухудшает ситуацию.

Я также пытался использовать теги br для создания пробелов перед таблицами, но, поскольку они «генерируются» и могут иметь произвольное количество строк в зависимости от XML, невозможно предсказать, когда потребуется br. это также создает больше проблем, чем помогает.

Я пытался разместить теги div вокруг таблиц и использовать разрывы страниц, но это также ничего не дало.

Я теряюсь в том, что попробовать после этого, так как HTML не является языком, с которым я работал раньше.

Все таблицы имеют одинаковый CSS:

Что такое:

  <style>
  table.TabelaRatingDin {
  border-collapse: collapse;
  width: 700px;
  position: relative;
  margin-left: auto;
  margin-right: auto;
  }

  table.TabelaRatingDin th {
  text-align: left;
  padding: 6px;
  font-size: 10px;
  background-color: #4286f4;
  color: white;
  letter-spacing: 1px;
  </style>   

Я просто хочу, чтобы заголовок таблицы не разбивался на 2 разные страницы. Хорошо, если содержимое реальной таблицы разделено, а не заголовок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...