AlexCasual, естественно я указал таблицу под ASCII. Но, насколько я помню, этого было вполне достаточно для корректного перехвата печати во всех возможных броузерах, офисных документах, пдфниках и т. п. для русских и английских текстов, для других языков не тестировал.
Я вот просто думаю как автоматизировать данный процесс,не вызывая каждый раз в функции ExtTextOut GetCharacterPlacement...
В функции ExtTextOut, в параметре Options проверяешь флаг ETO_GLYPH_INDEX, если он присуствует - тогда делаешь конвертацию глифов в символы.
И получается,что на каждый глиф придётся производить определение соответствующего символа,а это жутко долго для больших объёмов текста...
Ну во-первых, глифы не так часто используются, во-вторых, если сделать оптимальным алгоритм конвертации - то визуально не увидишь потерю производительности.
После получения таблицы глифов для таблицы символов, сделай ассоциативный массив (какой нибудь мап), где символ увязывается с индексом глифа. Это делается один раз при заходе в функцию. Дальше просто в ассоциативный массив подставляется индекс глифа - результат символ.