首页 > 解决方案 > 将xml转换为html到pdf时如何防止元素中的分页符

问题描述

我正在使用 XSLT 将 XML 代码转换为 HTML,因此我可以将其转换为要下载的 PDF。我在 XSLT 中使用 CSS 对 HTML 进行编码,因此当 XML 通过 XSLT 运行时,它会作为完美定制的 HTML 代码出现,然后我将其转换为 PDF。

所有代码都分为 Tables ,我想防止代码中的元素分页。仅在 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 个不同的页面。如果实际表格的内容是分开的,那很好,而不是标题。

标签: htmlcsspdfxslt

解决方案


推荐阅读