我有一个长表,显示几页上的行。当页面结束时,该行在一页上打印一半,在下一页打印一半。如何确保在新页面上完整打印行?
答案 0 :(得分:8)
function addTableRow(jQtable) {
var $row = jQtable.find("tr:last"),
$clone = $row.clone().appendTo(jQtable);
$clone.find('[id]').attr('id', function(i, id) {
return 10 + +id;
});
$clone.find('label').remove();
$clone.find('input').each(function() {
$(this).before('<label for="' + this.id + '">' + this.id + '</label>')
})
}
元素上的CSS属性:page-break-inside: avoid;
就可以了。
测试:
HTML tr
提供了wkhtmltopdf 0.12.3
,具体如下:
http://wkhtmltopdf.org/downloads.html#stable
快速而肮脏的测试可能如下所示:
Linux (Ubuntu Trusty) 32-bit / 64-bit built on Ubuntu 14.04.2
答案 1 :(得分:0)
将这个 CSS 添加到相应的类中会很好
#main_div {
position: relative;
width: 672px; /* find your width in px based on the page margins */
}
tr td {
page-break-before: auto;
page-break-inside: avoid !important;
}
但最重要的是为包含表格(或某些父 div)的容器提供以像素为单位的固定宽度。应该适用于大多数 (WebKit) pdf 生成器并允许它们正确计算高度。
我可以确认在 kubuntu 中使用 wkhtmltopdf 0.12.6(带有补丁的 qt)对我有用