Использование переносимых метрик TrueType
Приложения, использующие текстовые метрики TrueType, могут достичь высокой степени переносимости принтеров и документов; они могут использовать метрики TrueType, даже если они должны поддерживать совместимость с ранними 16-разрядными версиями Windows.
Ширина конструктора позволяет устранить большинство проблем, возникающих в тексте, зависящей от устройства, вводимых физическими устройствами. Ширина конструктора — это своего рода логическая ширина. Независимо от проблем растеризации или преобразований масштабирования, каждый глиф имеет логическую ширину и высоту. Каждый символ строки, состоящий из логической страницы, имеет место, не зависящее от ширины физического устройства. Хотя логическая ширина подразумевает, что ширину можно масштабировать линейно при любых точечных размерах, это не обязательно верно для непортируемых шрифтов или большинства шрифтов TrueType. При меньших размерах в точках некоторые глифы делаются шире относительно их высоты для лучшей удобочитаемости.
Символы в основных шрифтах TrueType предназначены для сетки 2048 на 2048. Ширина макета — это ширина символа в этих единицах сетки. (TrueType поддерживает любой целочисленный размер сетки до 16 384 на 16 384; размеры сетки, которые являются целыми числами 2, масштабируются быстрее, чем другие размеры сетки.)
Структура шрифта разработана в единицах. Квадрат em — это сетка, к которой соответствует контур шрифта. (Вы можете использовать элемент otmEMSquareобъекта OUTLINETEXTMETRIC и элемент ntmSizeEMобъекта NEWTEXTMETRIC , чтобы получить размер квадрата em в единицах измерения.) При создании шрифта с размером точки (в единицах устройства) равным размеру квадрата em, ширина ABC для этого шрифта является требуемой шириной оформления. Например, предположим, что размер квадрата em равен 1000, а ширина символа ABC в шрифте — 150, 400 и 150. Символ в этом шрифте высотой 10 единиц устройства будет иметь ширину ABC 1,5, 4 и 1,5 соответственно. Так как режим сопоставления MM_TEXT чаще всего используется со шрифтами (а MM_TEXT эквивалентен единицам устройств), это простое вычисление.
Из-за высокого разрешения ширины макета TrueType приложения, которые их используют, должны учитывать большие числовые значения, которые можно создать. Дополнительные сведения см. в следующих разделах: