Нижеследующая таблица определяет наиболее важную метрическую информацию о шрифте для прикладных программ, которые требуют переносных (машинонезависимых) документов и о функциях, которые дают возможность приложению извлекать их.
Функция | Метрика | Использование |
---|---|---|
EnumFontFamilies | ntmSizeEM | Извлекает расчетные метрики; преобразует в метрики устройства |
GetCharABCWidths | ABCWidths | Точное размещение букв (символов) в начале и конце полей страницы, в границах рисунка, и другой разбивки текста . |
GetCharWidth32 | AdvanceWidths | Размещение букв в строке |
GetOutlineTextMetrics | otmfsType | Биты внедрения шрифта. |
otmsCharSlopeRise | Y-компонент для наклона курсора для курсивных шрифтов. | |
otmsCharSlopeRun | X-компонент для наклона курсора для курсивных шрифтов. | |
otmAscent | Интервал между строками.. | |
otmDescent | Интервал между строками. | |
otmLineGap | Интервал между строками. | |
otmpFamilyName | Идентификация шрифта. | |
otmpStyleName | Идентификация шрифта. | |
otmpFullName | Идентификация шрифта (обычно имя семейства и стиля). |
Члены otmsCharSlopeRise, otmsCharSlopeRun, otmAscent, otmDescent и otmLineGap структуры OUTLINETEXTMETRIC масштабируются или преобразуются, чтобы соответствовать текущему режиму устройства и физической высоте (как задано в члене tmHeight структуры NEWTEXTMETRIC).
Идентификация шрифта важна в тех случаях, когда приложение должно выбирать один и тот же шрифт — например, когда документ повторно открывается или перемещается в другую операционную систему. Механизм отображения логического шрифта в физический всегда выбирает правильный шрифт, когда приложение запрашивает шрифт при помощи полного пути к файлу. Имена семейства и стиля обеспечивают ввод данных для стандартного диалогового окна шрифта, которое гарантирует, что выбор должным образом исключает неверную установку.
Значения членов otmsCharSlopeRise и otmsCharSlopeRun используются для создания достаточно хорошего приближения основного угла курсивного шрифта. Для обычных прямых (латинских) шрифтов, otmsCharSlopeRise равен 1, а otmsCharSlopeRun - 0. Для курсивных шрифтов, пытаются подобрать близкие значения синуса и косинуса основного угла курсивного шрифта (в градусах против часовой стрелки за пределы вертикали); обратите внимание, что курсивный угол для вертикальных шрифтов - 0. Поскольку эти значения не выражены в расчетных единицах измерения, они не должны преобразовываться в единицы измерения устройства (пиксели).
Метрики размещение символов и интервала между строками дают возможность приложению вычислить не зависящие от устройства переносы строки, которые являются машинонезависимыми для экранов, принтеров, наборных устройств и других инструментальных комплексов.
Чтобы выполнить независимый от устройств макет страницы
сверхвысокого разрешения (UHR)(например, 65,536 DPI);
это не допускает ошибок округления.
Если все прикладные программы принимают эти методы, разработчики могут фактически гарантировать, что документы, перемещенные из одного приложения в другое будет сохранять свой первоначальный вид и формат.