2015-11-09 154 views
1

我使用固定單元格高度創建表格。 如果字體太大,文字在表格中不可見。iText最大字體大小

在iText中是否有一個內置函數可以自動將字體大小減小到最大可能的大小,還是我必須自己實現?

回答

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?

+0

有沒有辦法迫使顯示在表格/單元格中的文本,但字體大小是大和/或串是多長時間? – Clemens

+0

你認爲這會是什麼樣子?你能否提供一個草圖,說明如何將太大的文字放入太小的矩形中? –

+0

@Clemens我發現了一個可能類似於你的問題的舊回答。我會通過鏈接來回答這個問題(和答案)。 –