嵌套HTML表格错误,打印预览IE中分页符附近缺少表格

嵌套HTML表格错误,打印预览IE中分页符附近缺少表格,html,internet-explorer,printing,html-table,Html,Internet Explorer,Printing,Html Table,在我工作的公司,我们以html格式生成报告,我们的客户经常打印这些报告。我们遇到的问题是,有时当客户端打印时,其中一个内部表将在打印视图中的分页符之前开始1或2个像素。这会导致表格消失,但会占用空间 <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=utf-8"> <META http-equiv="Content-Type" conte

在我工作的公司,我们以html格式生成报告,我们的客户经常打印这些报告。我们遇到的问题是,有时当客户端打印时,其中一个内部表将在打印视图中的分页符之前开始1或2个像素。这会导致表格消失,但会占用空间

<HTML>
  <HEAD>
    <META http-equiv="Content-Type" content="text/html; charset=utf-8">
    <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>test</title>
    <style type="text/css">
      td { border:1px solid black;}
      table {border-collapse:collapse;}
    </style>
  </HEAD>
  <BODY>
    <TABLE class="main">
      <TR>
        <TD>
          <TABLE class="second">
            <TR>
              <TD style="border-top:824px solid-black">1</TD>
            </TR>
            <TR>
              <TD>1_1</TD>
            </TR>
            <TR>
              <TD>1_2</TD>
            </TR>
            <TR>
              <TD>1_3</TD>
            </TR>
          </TABLE>
        </TD>
      </TR>
      <TR>
        <TD>
          <TABLE class="second">
            <TR>
                  <TD>2</TD>
            </TR>
            <TR>
              <TD>2_1</TD>
            </TR>
            <TR>
              <TD>2_2</TD>
            </TR>
            <TR>
              <TD>2_3</TD>
            </TR>
          </TABLE>
        </TD>
      </TR>
      <TR>
        <TD>
          <TABLE class="second">
            <TR>
              <TD>3</TD>
            </TR>
            <TR>
              <TD>3_1</TD>
            </TR>
            <TR>
              <TD>3_2</TD>
            </TR>
            <TR>
              <TD>3_3</TD>
            </TR>
          </TABLE>
        </TD>
      </TR>
    </TABLE>
  </BODY>
</HTML>

测试
td{边框:1px纯黑色;}
表{边框折叠:折叠;}
1.
1_1
1_2
1_3
2.
2_1
2_2
2_3
3.
3_1
3_2
3_3
上面的代码应该会重现错误,但是您可能必须在边框上添加一些填充,以便在分页符之前将第二个表插入

我们尝试过分页符、填充、边框折叠、无边框折叠。当只有两个表,除了单元格的边框之外没有任何样式时,错误似乎会持续存在。这似乎是一个相当大的缺陷,但我几乎没有运气找到任何关于它的东西

这是IE的问题还是我们可以做些什么来解决这个问题

编辑 我们尝试了尽可能简单的方法(仅限于TD元素的边界),但我们遇到了相同的问题


我们无法解决这个问题,但我们的解决方法是只使用外部表的一个单元格,然后将每个内部表放在其中。这防止了表在分页符附近消失。

在使用嵌套表布局的业务应用程序中,我们遇到了与IE7和IE8完全相同的问题。 根据我们对受影响样本的测试证据,Internet Explorer 11不存在此问题

这是IE中的一个缺陷,根据Microsoft技术支持,IE 10之前的版本中就存在这个缺陷,并且也反映在许多PDF打印机使用的打印到PDF功能中,这也是我们第一次发现这个缺陷的原因


不幸的是,我不能提供我所说的任何证据。请检查IE11并确认它是否解决了您的问题。如果您还不愿意切换浏览器,另一种选择是使用基于div的布局进行测试。

事实证明,即使没有边框折叠,我们仍然可以复制这个问题:您有什么样的疯狂数据结构来证明嵌套表的合理性?(或者它们是不合理的布局表?)CSS样式,如
之后分页符,在表中也不能很好地工作。你真的应该尝试找到一个没有大的外部表格的解决方案。从HTML服务器端生成PDF文件比依靠浏览器正确打印要可靠得多。