首页 文章

iText 最大字体大小

提问于
浏览
2

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

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

1 回答

  • 0

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

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

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

    这个例子是为了回答在矩形 iText 中更正文本位置中心而写

    如果你担心宽度,那么你需要使用getWidthPoint()方法,如下所述:如何计算 iText 中的字符串宽度?

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

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

    看看我对这个问题的回答:如何为字体选择最佳尺寸?

相关问题