我正在从iTextSharp创建一个PDF进行打印。我有可变长度的文本,我希望始终使用最大字体大小来填充固定高度的表格单元格而不会看不到视线。怎么办呢?
答案 0 :(得分:6)
您需要首先能够以您选择的字体测量文本的宽度。来自iTextSharp文档:
衡量文字
有时需要知道a的长度 某段文字。如果你有 创建了一个BaseFont对象,你可以使用 方法: public float getWidthPoint(String text,float 字体大小);所以,如果你正在使用一些 条形码字体,大小为36,如 上一个例子,你想知道 你需要多少空间才能到达 打印此条形码,您只需: getWidthPoint(“0123456789”,36f)。该 结果是以点为单位的宽度。那里 1英寸是72点。所以,如果你 有252分的结果(如 例8),你可以把它转换成 英寸和厘米像这样:252 / 72 = 3.5英寸* 2.54 = 8.89厘米
这将使用您选择的默认字体来获取字符串的宽度。然后,您可以使用表格单元格的固定宽度来查找正确的字体大小,以填充单元格的宽度而不进行换行。
textWidth = getWidthPoint("sample text", originalFontHeight)
newFontHeight = (cellWidth / textWidth ) * originalFontHeight
然后确保新字体的高度(已经按字体大小分数给出)不超过表格单元格的高度。