Текстовые метрики
Чтобы помочь макету, выбору настраиваемых шрифтов и другим операциям с интенсивными метриками, начиная с 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 любого шрифта в системе. Эта информация важна, если необходимо сопоставить шрифты в приложении с соответствующими шрифтами в локальной системе.
Глиф прогресса
Метод GetGlyphAdvances на IDWriteFontFace1 и IDWriteFont1 интерфейсы принимает в глиф и индексы, о которых требуется получить сведения о глифах, а затем возвращает прогресс для глифов, которые в этом вопросе.
Диапазоны Юникода
Приложения, которые хотят обрабатывать собственный выбор шрифтов, должны иметь доступ к диапазонам Юникода, поддерживаемым шрифтом. Таким образом, если кодовая точка Юникода не поддерживается шрифтом, приложение может выбрать соответствующий шрифт, содержащий глиф. Без этих сведений приложение может использовать шрифт, который не содержит все глифы, необходимые для отображения информации.
Метод GetUnicodeRanges для интерфейса IDWriteFontFace1 и IDWriteFont1 принимает максимальное количество диапазонов, передаваемых от клиента, и возвращает фактические диапазоны, поддерживаемые шрифтом.
Коллекция шрифтов EUDC
Используйте метод GetEudcFontCollection в интерфейсе IDWriteFactory1 доступ к коллекции шрифтов EUDC. Этот метод работает так же, как и GetSystemFontCollection, но вместо этого возвращает указатель на коллекцию шрифтов EUDC.