我的问题是计算可以适合给定页面大小的数据(字符串)(以英寸为单位)。
我有一个应用程序,可以在不使用任何报告控件的情况下创建普通的HTML报告。现在我必须在此报告中提供分页支持。报告本质上是动态的,即列是在运行时决定的。
根据页面宽度,我想将列包装在多行中。例如,如果页面宽度为8“,我想在第一行中只放置第一个'n'列,而在第二行中可以显示其余列(如果需要,可以显示更多行)。为此我需要计算多少数据可以适合8“宽的线。
同样,我想计算可以适合给定页面高度的数据高度。
总结一下,如何计算出以英寸为单位的给定页面大小的数据量。
注意:计算时还应考虑在运行时决定的字体。
答案 0 :(得分:0)
我编写了一个函数来获取浏览器呈现的跨度的宽度,方法是将其添加到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;
}