2

我试图避免在我的 HTML 表格的行内出现可能超过一页的分页符。我正在使用 Internet Explorer 打印预览和 BCL EasyPDFSDK 转换为 PDF 来测试这一点。我以各种组合将以下 CSS 样式应用于<td>元素,但对于每一个元素,我都得到了不希望的结果:

td {
    page-break-inside: avoid !important;
    white-space: nowrap;
    overflow: hidden;
    margin: 4px 0 4px 0;
}

我相信这page-break-inside: avoid !important是有效的,但只是在<td>水平上。例如,我会在第一页的末尾看到一个所有文本都完好无损的标签,但下面的<tr>标签将在下一页上,所有文本都完好无损。<td><td>

我不认为你应该应用格式,<tr>所以我不确定如何解决这个问题。

我应该将 CSS 应用于<tr>还是有其他方法来实现这一点?

谢谢您的帮助!

4

2 回答 2

5

原来我需要折叠表格元素上的边框并将我的填充减少到只有 1px 使用

table { border-collapse: collapse; }
td {
    page-break-inside: avoid !important;
    white-space: nowrap;
    overflow: hidden;
    padding: 1px;
    font-size: xx-small;
}

我还将字体大小设置为xx-small以防万一导致问题。当我折叠边框时,这个问题似乎主要得到了解决,所以这让我想知道表格是否因此而出现拆分行的问题。

干杯!

编辑:

自从处理了这个问题后,我发现在较新的 Web 浏览器中对行拆分的处理要好得多。如果您遇到此问题,我强烈建议您将 IE 更新到至少 11。

于 2017-04-21T08:51:15.540 回答
-1

我刚刚将下面的 css 添加到我的@media print 中,它起作用了!!!

适用于 td, th, tr 的解决方案均无效

table {
  page-break-inside: avoid !important;
}

于 2020-04-09T14:54:15.713 回答