我创建从iTextSharp的用于打印的PDF。我有我想始终处于最大字体大小,以填补固定高度的表格单元格没有包装的视线varible长度的文本。如何才能做到这一点?如何调整字体大小要填写一个固定的高度表格单元格在iTextSharp的
3
A
回答
6
你需要通过能够衡量你所选择的字体文本的宽度开始。从iTextSharp的文档:
测量文本
有时有必要知道 某一段文字的长度。如果你已经 创建BASEFONT对象,你可以使用 方法: 公众持股量getWidthPoint(字符串文本,浮动 fontSize的);因此,如果您正在使用 大小为36的条形码字体(如上例 中所示),并且您想知道 需要多少空间才能打印此条形码,您只需执行以下操作: getWidthPoint(“”,36f )。 结果是以点为单位的宽度。有 是1英寸72点。所以,如果你 有252点的结果(如 例如8),你可以将此转换为 英寸和厘米这样的:252 /72 = 3.5寸* 2.54 =8.89厘米
这将用你选择的任何字体作为默认值,让你获得字符串的宽度。然后,可以使用表格单元格的固定宽度来查找适当的字体大小,以填充单元格的宽度而不进行包装。
textWidth = getWidthPoint("sample text", originalFontHeight)
newFontHeight = (cellWidth/textWidth) * originalFontHeight
然后,只要确保新字体的高度(已按字体大小给出的点数)不超过表格单元格的高度。
大,非常感谢,这正是我一直在寻找。 – DaveB 2010-01-19 00:14:56