Подстановка шрифтов при отображении EMF-файла
От: VitKoff  
Дата: 26.10.17 07:58
Оценка:
Здравствуйте, есть проблема с подстановкой шрифтов при использовании японских иероглифов. Есть EMF-файл, который содержит текст с японскими иероглифами и английскими буквами. Функция PlayEnhMetafile() отображает их корректно. EMF-файл содержит записи EMREXTCREATEFONTINDIRECTW, которые содержат информацию об используемом шрифте. В нашем случае для всех строк используется шрифт Arial, но он не поддерживает японские иероглифы(по крайней мере тот, что установлен на моей системе Windows 8.1 x64 для одного языка — русская локализация). Поэтому я использую функцию IMLangFontLink2::MapFont(), которая выбирает оптимальный шрифт для нужного языка на основе заданного шрифта. В нашем случае эта функция выбирает шрифт MS PGothic вместо Arial для японских иероглифов. Проблема в том, что MS PGothic шире, чем Arial, в следствие чего текст наезжает друг на друга. Если открыть этот файл в Paint, то непонятно какой шрифт он использует для отображения японских символов. При чем текст не наезжает друг на друга. Точно такой же результат можно добиться при помощи функции PlayEnhMetafile(). У меня существует подозрение, что Paint использует функцию PlayEnhMetafile() для конвертации EMF-файла в растр, но неизвестно как он подбирает шрифт. Есть ли у вас какие-либо мысли как подобрать нужный шрифт, который бы поддерживал японские символы, но при этом сохранил нужную ширину текста? Заранее спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.