itextsharp测量块宽度/高度

我正在尝试与iTextSharp进行一些精确的对齐,但是我一直不知所措,因为我无法找到获得块或段落的宽度/高度值的方法。 如果我创建一个特定字体,大小和文本的段落,那么它的尺寸应该是已知的,对吧?

我知道默认的左/右/中心对齐对我来说很有用,但我知道尺寸最有用的场景。 有任何想法吗?

您可以使用GetWidthPoint()获取块的宽度,并且块的高度通常是字体的大小,除非您只使用小写字母。 如果是这样,那么您可以使用BaseFont.GetCharBBox()手动测量字符。

然而,段落是可流动的项目,它们取决于它们所写的上下文,因此测量它们更难。 (Chunks不会自动换行但段落会这样做。)测量段落的最佳方法是将其写入PdfCell然后测量PdfCell 。 您不必将PdfCell实际添加到文档中。 以下链接更多地解释了它。

http://itext-general.2136553.n4.nabble.com/Linecount-td2146114.html

使用下面的代码确切大小

 Font font = ...; BaseFont baseFont = font.BaseFont; float width = baseFont.GetWidthPoint(text, fontSize); float height = baseFont.GetAscentPoint(text, fontSize) - baseFont.GetDescentPoint(text, fontSize);