我有一个包含 DIV 的页面。此 div 是其他元素的容器,并且在打印时可以增加的高度大于页面的高度。
我认为它会毫无问题地分页。我看到的问题是 DIV 的高度增加到第 1 页的全高,就是这样。打印输出的第 1 页之外不再显示任何内容。
经过一番试验,我发现display: inline
似乎可以解决问题。我不懂为什么。
如果这确实是问题的解决方案,有人可以解释为什么这可以解决我的问题。
我想了解这样做的原因。
@您的评论:您在正确的时间提出正确的问题,因为我目前的工作完全相同!:) 我会分享一些截图来展示结果;我认为打印一个非常大的表格需要一个非常复杂的解决方案,但是对于我的表格来说它是有效的(我称之为“中等”)。
在我的应用程序中,容器 div 中有一个表,块元素的显示设置为 table-cell(使用浮动和边距时列宽不一致)。
1.普通webview中的页面
2.在样式表中放置打印媒体查询后的页面,打印中:(不要介意黑暗的 div,它是我尚未删除的掩码)正如您所见,表格跨越多个页面并水平缩放适合。
@media print {
#data {overflow: visible; height: auto;} /* the container div */
.bld {display: block} /* the blocks you see in the table, web display: table-cell */
/* I tested all table{ display: inline, inline-table, and table } and they
all worked for me, as displayed in the screenshot below */
}
3.要设置分页符以打印到某个div(可能是行),我会向您推荐这篇文章,因为我自己还没有尝试过,但可能值得一读: Make divs on a page print on separate打印时的页数
另一个技巧是在 x 行的第一列内的某个位置放置一个 div,然后设置这个 div 的 CSSpage-break-after: always;
以强制在这些行上分页。我在 tr's、td's 和 table 上测试了一些分页符,但它没有用(因为 tr's 的样式与其他 HTML 元素有些不同)
4.作为表格不同显示值差异的参考: https ://stackoverflow.com/questions/15130285/css-differences-between-style-display-inline-inline-table-and-table
我也将阅读此内容,如果您发现与此主题相关的其他有趣内容,请在评论中给我发@@,谢谢!