Поделиться через


Текстовые метрики

Чтобы помочь макету, выбору пользовательского шрифта и другим операциям с большим объемом метрик, начиная с Windows 8, DirectWrite имеет ряд новых API для выражения всех сведений о шрифтах, которые могут потребоваться для разработки приложений с форматированным текстом.

PANOSE

PANOSE — это визуальная система классификации для идентификации шрифтов. Классификация PANOSE содержит сведения о семействе, стиле засечек, весе, пропорции, контрастности, штрихе, стиле руки, высоте X и т. д. Эта информация описывает визуальный стиль шрифта. Эта информация важна, так как шрифты со схожими значениями PANOSE выглядят похожими. Это очень полезно в ситуациях, когда шрифт недоступен, а приложению необходимо вернуться к шрифту, который доступен. Сравнение значений PANOSE для шрифтов позволяет выбрать шрифт, который визуально похож на исходный шрифт.

Чтобы получить доступ к сведениям PANOSE для шрифта, используйте метод GetPanose в интерфейсах IDWriteFont1 и IDWriteFontFace1 . Этот метод возвращает перечисление DWRITE_PANOSE , содержащее все сведения о PANOSE для этого шрифта.

Дополнительные метрики

Начиная с Windows 8, API DirectWrite также поддерживает ряд новых метрик, чтобы передать в приложение полезную информацию о шрифтах. Эти новые метрики включают эти сведения.

  • Метрики ограничивающего прямоугольника левого, правого, верхнего и нижнего глифов.
  • Размещение X и Y для надстрочных и подстрочных элементов.
  • Сведения о масштабировании X и Y для надстрочных и подстрочных элементов.
  • Указывает, содержит ли шрифт типографические метрики.

Все эти сведения доступны с помощью нового метода GetMetrics в интерфейсах IDWriteFontFace1 и IDWriteFont1 . Этот метод возвращает DWRITE_FONT_METRICS1 структуру, содержащую все эти сведения.

Метрики caret

Для создания приложений для редактирования текста требуется доступ к сведениям о том, как нарисовать курсор, который перемещается по тексту. Начиная с Windows 8, DirectWrite предоставляет метод GetCaretMetrics в интерфейсах IDWriteFontFace1 и IDWriteFont1 для этого сценария. GetCaretMetrics возвращает перечисление DWRITE_CARET_METRICS , содержащее сведения о наклоне и смещение для курсора вдоль базового плана.

Эта информация особенно полезна, если вы хотите иметь возможность иметь их курсор наклона соответствующим курсивом.

Монопространственность обнаружения

Приложения, которые позволяют пользователям писать компьютерный код, часто используют однопространствовые шрифты вместо более традиционных шрифтов. Таким образом, вы можете больше контролировать выбор шрифтов в приложениях, связанных с разработкой, DirectWrite определяет, является ли шрифт монопространственным с помощью API. Метод IsMonospacedFont в интерфейсе IDWriteFontFace1 возвращает логическое значение, указывающее, является ли шрифт монопространственным.

Сопоставление имен шрифтов

Приложения с форматированным текстом, такие как средства чтения PDF, должны иметь возможность сопоставлять шрифты в своем содержимом со шрифтами в системе, им нужен доступ к полным именам шрифтов в нескольких форматах. Чтобы лучше сопоставлять шрифты, DirectWrite содержит перечисление, которое выражает полные сведения об именовании шрифта во многих форматах.

Перечисление DWRITE_INFORMATIONAL_STRING_ID используется для получения полного имени, имени PostScript и имени CID PostScript любого шрифта в системе. Эта информация полезна, если вам нужно сопоставить шрифты в приложении с соответствующими шрифтами в локальной системе.

Glyph Advances

Метод GetGlyphAdvances в интерфейсахIDWriteFontFace1 и IDWriteFont1 принимает количество глифов и индексы, о которых требуется информация о авансах, а затем возвращает авансы для рассматриваемых глифов.

Диапазоны Юникода

Приложениям, которые хотят обрабатывать собственный выбор шрифта, необходим доступ к диапазонам Юникода, которые поддерживаются шрифтом. Таким образом, если кодовая точка Юникода не поддерживается шрифтом, приложение может выбрать соответствующий шрифт, содержащий этот глиф. Без этих сведений приложение может использовать шрифт, который не содержит все глифы, необходимые для отображения информации.

Метод GetUnicodeRanges в интерфейсах IDWriteFontFace1 и IDWriteFont1 принимает максимальное количество диапазонов, передаваемых от клиента, и возвращает фактические диапазоны, поддерживаемые шрифтом.

Коллекция шрифтов EUDC

Используйте метод GetEudcFontCollection в интерфейсе IDWriteFactory1 для доступа к коллекции шрифтов EUDC. Этот метод работает так же, как GetSystemFontCollection, но вместо этого возвращает указатель на коллекцию шрифтов EUDC.