Использование машинонезависимых атрибутов шрифта TrueType


Прикладные программы, которые используют в тексте атрибуты шрифта TrueType, могут достигать высокого качества печати и мобильности документа; они могут использовать метрику открытого формата (TrueType), даже тогда, если они должны поддерживать совместимость с ранними 16-разрядными версиями Windows.

Расчетная ширина преодолевает большинство проблем аппаратно-зависимого текста, представляемого физическими устройствами. Расчетная ширина - это своего рода логическая ширина. Независимый от любых проблем растеризации или преобразований масштабирования, каждый глиф имеет логическую ширину и высоту. Составляется логическая страница, каждая буква в строке которой имеет размещение, являющееся независимым от физической ширины устройства. Хотя логическая ширина подразумевает, что ширина может масштабироваться линейно во всех размерах шрифта в пунктах, это - необязательно истина для любого из непереносных (зависимых от устройства) или для большинства масштабируемых (TrueType) шрифтов. В меньших кеглях шрифта, некоторые глифы сделаны более широкими относительно их высоты для лучшей разборчивости.

Буквы в коренных шрифтах открытого формата (TrueType) разработаны в сетке 2048 на 2048 ячеек. Расчетная ширина - это ширина буквы (символа) в этих элементах сетки. (Шрифт TrueType поддерживает любую целочисленную сетку, размером до 16384 на 16384 ячеек; сетка изменяет размер, который являются целочисленными степенями числа 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 расчетной ширины, прикладные программы, которые используют их, должен принять во внимание большие числовые значения, которые могут быть созданы. Для получения дополнительной информации, см. ниже следующие темы:

Назад в оглавление темы
На главную страницу темы

Hosted by uCoz