Font Concepts

本节向您介绍Font类,该类支持详细字体信息的规范以及复杂的打印功能的使用。

Font对象表示系统上可用字体集合中的字体实例。常见字体的示例包括 Helvetica Bold 和 Courier Bold Italic。 Font对象与三个名称相关联:其逻辑名称,系列名称和字体名称:

  • Font对象的*“逻辑名称” 是 Map 到物理字体的名称,该物理字体是系统上可用的特定字体之一。在 Java 中指定Font时,请使用字体名称*代替逻辑名称。您可以通过调用getName方法从Font获取逻辑名称。要获取 Map 到系统上可用的特定字体的逻辑名称的列表,请调用java.awt.GraphicsEnvironment.getAvailableFontFamilyNames方法。

有关更多信息,请参见物理和逻辑字体

  • Font对象的“系列名称”是字体家族的名称,该字体家族确定了多个面孔(例如 Helvetica)的打印设计。通过getFamily方法检索姓氏。

  • Font对象的字体名称是指系统上安装的实际字体。这是指定字体时应使用的名称。它通常仅称为* font name *。通过调用getFontName检索字体名称。若要确定哪些字体在系统上可用,请调用java.awt.GraphicsEnvironment.getAllFonts方法。

您可以通过getAttributes方法访问有关Font的信息。 Font对象的属性包括其名称,大小,变换和字体 Feature,例如权重和姿势。

LineMetrics对象封装了与Font相关联的测量信息,例如其上升,下降和前移:

    • Ascent *是从基线到上升线的距离。该距离代表大写字母的典型高度,但是某些字符可能会在上升行上方延伸。
  • 下降是从基线到下降线的距离。大多数字符的最低点将位于下降范围内,但某些字符可能会在下降线下方延伸。

    • Leading *是从下降线底部到下一行顶部的建议距离。

下图显示了上升线,基线和下降线的位置:

上升线,基线和下降线的位置

此信息用于沿一行正确放置字符,以及使行彼此相对。您可以通过getAscentgetDescentgetLeading方法访问这些行 Metrics。您还可以通过LineMetrics类访问有关Font对象的高度,基线以及下划线和删除线 Feature 的信息。