Windows API для доступа к таблицам шрифтов (Kern, GPOS и т. Д.) - PullRequest
0 голосов
/ 10 февраля 2019

В настоящее время Apple предоставляет функции для доступа к данным в таблицах шрифтов, например CTFontCopyTable .Я использую его для анализа информации (кернинг и т. Д.) Из шрифта, когда он доступен.Есть ли похожий способ извлечения одних и тех же данных в Windows для каждого шрифта?

Я могу видеть много документации на стороне Windows, когда дело доходит до этих таблиц шрифтов, но я не могу 'Кажется, я не могу найти данные для каждого шрифта.

Вот как я извлекаю данные в osx:

CTFontRef lCTFont = CTFontCreateWithName((CFStringRef)lNSFontName, 800.0f, NULL);
CFDataRef lKernTable = CTFontCopyTable(lCTFont, kCTFontTableKern, kCTFontTableOptionNoOptions);
CFDataRef lGPOSTable = CTFontCopyTable(lCTFont, kCTFontTableGPOS, kCTFontTableOptionNoOptions);

Ответы [ 2 ]

0 голосов
/ 10 февраля 2019

GetFontData получит необработанные данные таблицы, но, как советуют другие предложения, вы, вероятно, захотите использовать предоставленные системой методы размещения текста, а не пытаться свернуть свои собственные.

0 голосов
/ 10 февраля 2019

Вы можете использовать GetKerningPairs для получения данных кернинга и GetCharacterPlacement для получения данных GPOS.

Если вы действительно хотите просто правильно отобразить некоторый текст, возможно, вы захотите использовать Uniscribe вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...