iText最大字体大小

时间:2015-11-09 12:47:11

标签: java itext

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

iText中是否有内置功能可以自动将字体大小减小到最大可能的大小,还是我必须自己实现?

1 个答案:

答案 0 :(得分:0)

自动字体大小只能在AcroForm文本字段的上下文中使用。将文本字段的字体大小定义为0时,将选择适合矩形的字体大小。如果表格中的单元格高度固定,则您有责任确保文本适合。

如果您担心身高,请查看FitTextInRectangle示例:

BaseFont bf = BaseFont.createFont();
int textHeightInGlyphSpace = bf.getAscent(text) - bf.getDescent(text);
float fontSize = 1000f * fixedHeight / textHeightInGlyphSpace;

此示例是在回答Correct text position center in rectangle iText

时编写的

如果您关注宽度,则需要使用此处所述的getWidthPoint()方法:How to calculate the string width in iText?

BaseFont bf = BaseFont.createFont();
float width = bf.getWidthPoint("My text", myFontSize);

您需要确保width不超过单元格的宽度。为此,您需要调整myFontSize

请参阅我对此问题的回答:How to choose the optimal size for a font?