我正在通过 XML 数据生成 pdf 文件。
我计算段落元素的高度为:
float paraWidth = 0.0f;
for (Object o : el.getChunks()) {
paraWidth += ((Chunk) o).getWidthPoint();
}
float paraHeight = paraWidth/PageSize.A4.getWidth();
但这种方法不能正确工作。
你能给我一个主意吗?
你的问题很奇怪。根据问题的标题,您想知道字符串的高度,但您的代码显示您正在询问字符串的宽度。
请看一下Foobar电影节 http://itextpdf.com/examples/iia.php?id=61例子。
If bf
is a BaseFont
实例,那么你可以使用:
float ascent = bf.getAscentPoint("Some String", 12);
float descent = bf.getDescentPoint("Some String", 12);
当我们使用 12 的字体大小时,这将返回基线以上的高度和基线以下的高度。您可能知道,字体大小指示平均高度。这不是实际高度。这只是我们合作的一个数字。
总高度将为:
float height = ascent - descent;
或者您可能想知道Paragraph
并将其乘以leading
。在这种情况下,就有不同的可能性。由于您的问题不清楚您想要什么(块的高度、块的宽度、基线的垂直位置……),因此您不会得到比已经给出的更好的答案。如果块中字形的高度不是您所期望的,请重新表述您的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)