如何计算给定页面大小可以容纳多少行(或记录)
本文关键字:多少 记录 计算 何计算 | 更新日期: 2023-09-27 18:00:06
我的问题是计算能够适应给定页面大小(以英寸为单位)的数据(字符串)。
我有一个应用程序,它在不使用任何报告控件的情况下创建普通的HTML报告。现在我必须在这个报告中提供分页支持。报告本质上是动态的,即列是在运行时决定的。
根据页面宽度的不同,我希望将列换行。例如,如果页面宽度为8",我只想在第一行中显示前'n'列,其余列可以显示在第二行(如果需要,可以显示更多行)。为此,我需要计算8"宽的行中可以容纳多少数据。
类似地,我想计算可以适应给定页面高度的数据的高度。
总之,我如何计算给定页面大小中可以容纳多少数据(以英寸为单位)。
注意:计算还应该考虑字体,因为它是在运行时决定的。
我编写了一个函数,通过将跨度添加到DOM中检查OffsetWidth,然后再次删除它,来获得浏览器所呈现的跨度的宽度。您可能会将该原则适用于其他html元素,尽管我怀疑沿着这条路走下去是否会非常有效。我的应用程序需要这个,我只使用它来查找字符串列表中最长的渲染像素宽度。如果我是你,我会考虑其他大桌子的方法。
尽管如此,以下是功能:
function GetTextWidth(text, font, fontSize) {
var size = 0;
var spanWidthTestEle = document.createElement("span");
spanWidthTestEle.id = "spanWidthTest";
spanWidthTestEle.style.fontFamily = font;
spanWidthTestEle.style.fontSize = fontSize;
spanWidthTestEle.innerText = text;
document.body.appendChild(spanWidthTestEle);
var spanWidthTest = document.getElementById("spanWidthTest");
size = spanWidthTest.offsetWidth;
document.body.removeChild(spanWidthTest);
return size;
}