【发布时间】:2017-01-11 10:33:55
【问题描述】:
我有用于创建表并打印的数据。结构如下:
标题 数据 总和
打印时标题不能在页尾,Sum 不能在页首。这就是为什么我用 Divs 制作 html 表格并用 mm 给出所有尺寸的原因。但我无法在打破页面时进行计算。 couse in不同的电脑高度变化。
这是我用于计算和中断页面的 javascript 代码
$(document).ready(function(){
var mydiv ='<div class="page-break"></div>';
var i=0;
var h = px2cm($("#myinfo").last().height())*10;
var limit=297;
var g =0;
$('#content div.ptr').each(function(){
g=0;
h = h + px2cm($(this).height())*10;
var nexth=px2cm($(this).next().height())*10;
if(h>=limit-nexth)
{
if($(this).hasClass("ptrtitle")){
$(this).before(mydiv);
h = px2cm($(this).height())*10;
i++;
g=1;
}else{
if(String($(this).next().attr("class"))==="ptr ptrsum"){
if($(this).prev().hasClass("ptrtitle"))
{
$(this).prev().before(mydiv);
h = px2cm($(this).height()+$(this).prev().height())*10;
}else{
$(this).before(mydiv);
h = px2cm($(this).height())*10;
}
//h=0;
i++;
g=1;
}else{
$(this).after(mydiv);
h=0;i++;
}
}
}
});
});
function px2cm(px) {
var d = $("<div/>").css({ position: 'absolute', top : '-1000cm', left : '-1000cm', height : '1000cm', width : '1000cm' }).appendTo('body');
var px_per_cm = d.height() / 1000;
d.remove();
return px / px_per_cm;
}
在这里我添加限制=297(对于 A4 高度,它在某些计算机上运行良好,但在其他计算机上运行良好)。效果不好意味着,在第一台计算机上,它在一页打印 40 行,但在另一台计算机上,一些行转到下一个打印页
如何在所有电脑上正常打印数据
【问题讨论】:
-
你看过 CSS 属性 page-break-inside 吗?也许您可以将其添加到 div 并将其设置为“避免”。
-
是的,但我不工作
-
如果您在 jsfiddle 或类似文件中创建了一个简单的标记演示,我们可能会更容易提供帮助。
-
我无法理解,在这个例子中我设置了一个 257(297-40(margin)) mm 高度宽度的 div,它必须占据整个页面,但它占据了它的一部分 jsfiddle link
标签: javascript html css printing