使用可移植 TrueType 指标

使用 TrueType 文本指标的应用程序可以实现高度的打印机和文档可移植性;它们可以使用 TrueType 指标,即使它们必须保持与早期 16 位版本的 Windows 的兼容性。

设计宽度克服了物理设备引入的依赖于设备的文本的大多数问题。 设计宽度是一种逻辑宽度。 与任何光栅化问题或缩放转换无关,每个字形都有逻辑宽度和高度。 字符串中的每个字符都有一个独立于物理设备宽度的位置,组成逻辑页。 尽管逻辑宽度意味着宽度可以在所有点大小上线性缩放,但对于非可移植字体或大多数 TrueType 字体不一定如此。 在较小的点大小时,一些字形相对于其高度变宽,以提高可读性。

TrueType 核心字体中的字符是针对 2048 到 2048 网格设计的。 设计宽度是字符的宽度(以这些网格单位表示)。 (TrueType 支持任何整数网格大小,最大为 16,384 x 16,384;整数幂为 2 的网格大小缩放速度比其他网格大小快。)

字体轮廓以名义单位设计。 em 正方形是拟合字体轮廓时所针对的名义网格。 (可以使用 OUTLINETEXTMETRICotmEMSquare 成员和 NEWTEXTMETRICntmSizeEM 成员检索 em 正方形的大小(以名义单位为单位)。) 当创建的字体的点大小 (设备单位) 等于其正方形的大小时,此字体的 ABC 宽度是所需的设计宽度。 例如,假设 em 正方形的大小为 1000,字体中字符的 ABC 宽度为 150、400 和 150。 此字体中高 10 个设备单位的字符的 ABC 宽度分别为 1.5、4 和 1.5。 由于MM_TEXT映射模式最常用于字体 (,MM_TEXT相当于设备单位) ,因此这是一个简单的计算。

由于 TrueType 设计宽度的高分辨率,因此使用它们的应用程序必须考虑到可以创建的大型数值。 有关详情,请参阅以下主题: