字体概念

原文: https://docs.oracle.com/javase/tutorial/2d/text/fontconcepts.html

本节向您介绍 Font 类,它支持详细的字体信息的规范和复杂的排版功能的使用。

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

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

    有关详细信息,请参阅 物理和逻辑字体

  • Font 对象的系列名称是字体系列的名称,用于确定跨多个面的排版设计,例如 Helvetica。通过 getFamily 方法检索系列名称。

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

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

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

  • Ascent 是从基线到上升线的距离。此距离表示大写字母的典型高度,但某些字符可能会延伸到上升线之上。
  • _ 下降*是从基线到下降线的距离。大多数字符的最低点将落在下降范围内,但某些字符可能会延伸到下降线以下。
  • _ 前导*是从下行线底部到下一行顶部的建议距离。

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

Position of the ascender line, baseline, and descender line

此信息用于沿一条线正确定位字符,以及相对于彼此定位线。您可以通过 getAscentgetDescentgetLeading 方法访问这些线路指标。您还可以通过LineMetrics类访问有关 Font 对象的高度,基线以及下划线和删除线特征的信息。