Сопоставление глифов Unicode шрифта с реальными символами

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

Я использовал шрифт «Wingdings 2» в качестве тестового примера и сравнил его с тем, что я вижу в Windows ' charmap.exe . Я вижу, что хотя все символы появляются, некоторые символы появляются более одного раза (всего 480 глифов в этом шрифте, отличном от Unicode), и их позиции не такие, как в charmap (например, средний размер круговой глиф в карте символов, расположенный как 0x97 , а в шрифте это глиф 0xF097 , и я также думаю, что это тот, который находится в 0x2014 ).

Я хочу использовать шрифт как «обычный» способ, то есть я хочу видеть те же данные, что и в charmap.exe (и в примечании на стороне я также хотел бы знать, есть ли font - это шрифт Unicode или шрифт ascii, как показано в charmap ). По сути, вы можете сказать, что я пытаюсь написать свою собственную карту charmap с нуля.

Как я могу заполнить эти недостающие данные? Я просматривал шрифты и текстовые API Windows, но не смог найти ничего, что могло бы мне помочь, поэтому мне, должно быть, не хватало некоторых соответствующих API. Какие они?

5
задан Itai Bar-Haim 15 February 2012 в 09:49
поделиться