我正在尝试使用spatie / browsershot生成带有动态数据的pdf报告,并且需要在所有页面上保留页脚(位置:固定)。
问题在于,在许多情况下,文本会使文档溢出并到达页脚部分。假设280mm的页面和页脚为40mm,我需要一种方法来禁止页面内容跨越240mm。我尝试了多种方法,使用计算出的DOM元素高度和顶部,并根据元素在文档中的位置添加边距。但是这些都不是完美的。
// for one page break i.e. added margin, on each page
var pageBreakAdded = 0;
Array.from(document.getElementsByClassName('do-not-overlap')).forEach(function(el){
var dims = el.getBoundingClientRect();
var top = dims.top;
var height = dims.height;
var elementEndsAt = top + height;
// assuming page breaks at 1500px
if(top < 1500){
if(elementEndsAt > 1440 && pageBreakAdded < 1440){
pageBreakAdded = 1440;
addMarginBottom(el, 1500 - top);
}
}else if(top < 3000){
if(elementEndsAt > 2940 && pageBreakAdded < 2940){
pageBreakAdded = 2940;
addMarginBottom(el, 3000 - (top));
}
}else if(top < 4500){
if(elementEndsAt > 4440 && pageBreakAdded < 4440){
pageBreakAdded = 4440;
addMarginBottom(el, 4500 - (top));
}
}else if(top < 6000){
if(elementEndsAt > 5940 && pageBreakAdded < 5940){
pageBreakAdded = 5940;
addMarginBottom(el, 6000 - (top));
}
}
});
这是我用于计算头寸和增加边距的代码。 怎么了还有其他方法吗?我可以在@page页边空白中插入内容吗?有什么吗?
P.S。无法将所有CSS px更改为mm,这可能会太大。