我正在通过XML数据生成pdf文件。
我将段落元素的高度计算为:
float paraWidth = 0.0f; for (Object o : el.getChunks()) { paraWidth += ((Chunk) o).getWidthPoint(); } float paraHeight = paraWidth/PageSize.A4.getWidth();
但是这种方法不能正常工作。
你能给我个主意吗?
您的问题很奇怪。根据您的问题的标题,您想知道字符串的高度,但是您的代码显示您要求的是字符串的宽度。
请看一下FoobarFilmFestival示例。
如果bf是BaseFont实例,则可以使用:
bf
BaseFont
float ascent = bf.getAscentPoint("Some String", 12); float descent = bf.getDescentPoint("Some String", 12);
当我们使用12号字体时,这将返回基线以上的高度和基线以下的高度。您可能知道,字体大小是平均高度的指示。不是实际的高度。这只是我们合作的一个数字。
总高度为:
float height = ascent - descent;
或者,也许您想知道a占用的行数Paragraph并将其乘以leading。在这种情况下,存在不同的可能性。因为从您的问题中尚不清楚您想要什么(块的高度,块的宽度,基线的垂直位置,…),所以您将无法获得比已经给出的更好的答案。如果块中字形的高度不符合您的预期,请重新说明您的问题。
Paragraph
leading