Java iText最大字体大小

Java iText最大字体大小,java,itext,Java,Itext,我使用固定的单元格高度来创建表格。 如果字体太大,则文本在表中不可见 iText中是否有一个内置函数可以自动将字体大小减小到最大可能大小,或者我必须自己实现此功能?自动字体大小只能在AcroForm文本字段的上下文中实现。将文本字段的字体大小定义为0时,将选择适合矩形的字体大小。对于表格中的固定单元格高度,您有责任确保文本符合要求 如果您担心身高,请看以下示例: 这个例子是为了回答这个问题而写的 如果您关心宽度,则需要使用getWidthPoint()方法,如下所述: 您需要确保width不超过

我使用固定的单元格高度来创建表格。 如果字体太大,则文本在表中不可见


iText中是否有一个内置函数可以自动将字体大小减小到最大可能大小,或者我必须自己实现此功能?

自动字体大小只能在AcroForm文本字段的上下文中实现。将文本字段的字体大小定义为0时,将选择适合矩形的字体大小。对于表格中的固定单元格高度,您有责任确保文本符合要求

如果您担心身高,请看以下示例:

这个例子是为了回答这个问题而写的

如果您关心宽度,则需要使用
getWidthPoint()
方法,如下所述:

您需要确保
width
不超过单元格的宽度。要实现这一点,您需要调整
myFontSize


请参阅我对这个问题的回答:

尽管字体太大和/或字符串太长,但是否有办法强制在表格/单元格中显示文本?您认为这是什么样子的?你能提供一个草图,说明如何将太大的文本放入太小的矩形中吗?@Clemens我找到了一个与你的问题类似的老答案。我会用这个问题(和答案)的链接更新我的答案。
BaseFont bf = BaseFont.createFont();
int textHeightInGlyphSpace = bf.getAscent(text) - bf.getDescent(text);
float fontSize = 1000f * fixedHeight / textHeightInGlyphSpace;
BaseFont bf = BaseFont.createFont();
float width = bf.getWidthPoint("My text", myFontSize);