Ширина символа
Прикладным программам нужно извлечь данные о ширине символа, когда они выполняют такие задачи как подгонка строк текста к ширине колонки или страницы. Есть четыре функции, которые приложение может использовать для извлечения данных о ширине символа. Две из этих функций извлекают ширину символа в строке, а две другие функции извлекают фактические данные ширины символа.
Приложение может использовать функции
GetCharWidth32 и GetCharWidthFloat, чтобы извлечь занимаемую ширину в строке текста для конкретного знака или символа. Ширина, занимаемая знаком в строке (advance width) - это расстояние, на которое курсор на экране дисплея или печатающая головка на принтере должна продвинуться вперед перед печатью следующего символа в строке текста. Функция GetCharWidth32 возвращает занимаемую ширину как целочисленное значение. Если требуется большая точность, приложение может использовать функцию GetCharWidthFloat, чтобы извлечь дробные значения занимаемой ширины.Приложение может извлечь фактическую информацию о ширине символа при помощи использования функции
GetCharABCWidths и GetCharABCWidthsFloat. Функция GetCharABCWidthsFloat работает со всеми шрифтами. Функция GetCharABCWidths работает только с шрифтами формата OpenType и TrueType. Для получения дополнительной информации о шрифтах TrueType и OpenType, см. статью Растровый, векторный, открытого формата (TrueType ), единого формата (OpenType) шрифты.Нижеследующая иллюстрация показывает три компонента ширины символа:
Пробел А - это ширина, которая добавляется к текущей позиции перед размещением буквы. Пробел
B – это ширина буквы (символа) непосредственно. Пробел C - незаполненное пространство справа от буквы. Общая занимаемая ширина определяется путем вычисления суммы A+B+C. Символьное знакоместо (character cell) – это мнимый прямоугольник, который окружает каждую букву или символ в шрифте. Поскольку буквы могут нависать или выступать за символьное знакоместо то, оба пробела, и А, и C увеличиваются, и могут быть отрицательным числом.