当行的顶部位置超出像素限制时,我想插入两个新行。
我尝试过以下代码但不能正常使用。
我正在为分页和重复表格标题添加这两行。
以下是此代码的打印预览:
标题只能在下一页重复。
var x = document.getElementsByTagName('tr');
var rowTopVal = 0;
var tIndex = 0;
var deductVal = 0;
var tableId = document.getElementById("testID");
for (var i = 0; i < x.length; i++) {
rowTopVal = x[i].position().top;
rowTopVal = rowTopVal - deductVal;
if (1200 < rowTopVal) {
tIndex = i;
var row = tableId.insertRow(tIndex);
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
var cell4 = row.insertCell(3);
var cell5 = row.insertCell(4);
cell1.innerHTML = "x";
cell2.innerHTML = "Y";
cell3.innerHTML = "z";
cell4.innerHTML = "P";
cell5.innerHTML = "q";
row.className = 'tableHeaderRepeat';
var row2 = tableId.insertRow(tIndex);
row2.className = 'tableHeaderRepeatBlank';
newRow1Height = parseInt($('.tableHeaderRepeatBlank').css('height'), 10);
newRow2Height = parseInt($('.tableHeaderRepeat').css('height'), 10);
deductVal = deductVal + rowTopVal - newRow1Height - newRow2Height;
}
}
答案 0 :(得分:0)
也许您可以尝试将css属性添加到表标题中?见CSS page break properties。 例如:
.tableHeaderRepeat { page-break-before: always; }
它应该在每个表头之前添加分页符,因此您只需要近似计算开始新表的位置。我现在无法对此进行测试,但也许它会提供帮助。