我正在使用固定的单元格高度来创建表格。如果字体太大,则表格中不显示该文本。
iText 中是否有 built-in 功能可以自动将字体大小减小到最大可能的大小,还是我必须自己实现?
自动字体大小只能在 AcroForm 文本字段的上下文中使用。将文本字段的字体大小定义为 0 时,将选择适合矩形的字体大小。如果表格中的单元格高度固定,则您有责任确保文本适合。
如果您担心高度,请查看FitTextInRectangle示例:
BaseFont bf = BaseFont.createFont(); int textHeightInGlyphSpace = bf.getAscent(text) - bf.getDescent(text); float fontSize = 1000f * fixedHeight / textHeightInGlyphSpace;
这个例子是为了回答在矩形 iText 中更正文本位置中心而写
如果你担心宽度,那么你需要使用getWidthPoint()方法,如下所述:如何计算 iText 中的字符串宽度?
getWidthPoint()
BaseFont bf = BaseFont.createFont(); float width = bf.getWidthPoint("My text", myFontSize);
您需要确保width不超过单元格的宽度。要实现这一点,您需要调整myFontSize。
width
myFontSize
看看我对这个问题的回答:如何为字体选择最佳尺寸?
1 回答
自动字体大小只能在 AcroForm 文本字段的上下文中使用。将文本字段的字体大小定义为 0 时,将选择适合矩形的字体大小。如果表格中的单元格高度固定,则您有责任确保文本适合。
如果您担心高度,请查看FitTextInRectangle示例:
这个例子是为了回答在矩形 iText 中更正文本位置中心而写
如果你担心宽度,那么你需要使用
getWidthPoint()
方法,如下所述:如何计算 iText 中的字符串宽度?您需要确保
width
不超过单元格的宽度。要实现这一点,您需要调整myFontSize
。看看我对这个问题的回答:如何为字体选择最佳尺寸?