代码之家  ›  专栏  ›  技术社区  ›  DaveB

如何调整字体大小以填充ITextSharp中的固定高度表格单元格

  •  3
  • DaveB  · 技术社区  · 15 年前

    我正在创建ITextSharp的PDF文件以供打印。我有可变长度的文本,我希望始终以最大字体大小填充固定高度的表格单元格,而不会超出视线。怎么能做到?

    1 回复  |  直到 15 年前
        1
  •  6
  •   Stewbob    15 年前

    首先,您需要能够以所选字体测量文本的宽度。来自ITextSharp文档:

    测量文本

    有时有必要知道 某些文本。如果你有 创建了一个baseFont对象,可以使用 方法: 公共float getwidthpoint(字符串文本,float fontsize);所以如果你使用 尺寸为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
    

    然后,只需确保新字体的高度(已按字体大小以点数表示)不超过表格单元格的高度。