我使用固定的单元格高度来创建表格。 如果字体太大,则表格中不会显示该文本。
iText中是否有内置功能可以自动将字体大小减小到最大可能的大小,还是我必须自己实现?
答案 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?