在我工作的业务中,我们以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>
上面的代码应该重现错误,但是您可能需要在边框上添加一些填充,以便在分页符之前将第二个表格碰撞。
我们尝试了分页符,填充,边框折叠,没有边框折叠。当它只是两个表而没有任何样式的细胞边界时,错误似乎仍然存在。这似乎是一个相当大的缺陷,但我很幸运找不到任何关于它的东西。
这是IE的问题还是我们可以做些什么来解决这个问题?
修改 我们尝试尽可能地使用骨骼(只有TD元素的边界),我们遇到了同样的问题。
我们无法解决问题,但我们的工作包括只使用外表的一次单元格并将每个内部表放在那里。这可以防止表格在分页符附近消失。
答案 0 :(得分:0)
我们在使用嵌套表格布局的业务应用程序中遇到了与IE7和IE8完全相同的问题。 根据我们针对受影响样本的测试证据,Internet Explorer 11没有此问题。
这是IE中的一个错误,根据Microsoft技术支持存在于IE 10之前的版本中,并且也反映在许多PDF打印机使用的Print-to-PDF功能中,这是我们首先找到错误的方法。 / p>
不幸的是,我无法提供任何证据证明我的陈述。请检查IE11并确认它是否解决了您的问题。另一种选择是使用基于div的布局测试它,如果您还不愿意切换浏览器。