Нужна помощь для отображения японского текста с использованием GDI + без установки пакета восточноазиатских языков в Windows XP - PullRequest
3 голосов
/ 10 марта 2009

Я пишу программу для викторины на японском языке и не хочу, чтобы люди устанавливали восточноазиатский языковой пакет для Windows XP. Я использую GDI + для рисования текста. Я попытался загрузить бесплатный шрифт Unicode и использовать его для рисования текста. Я протестировал его на своем компьютере (с установленным пакетом Восточной Азии), и он правильно отображал японские символы, используя загруженный шрифт, но на другом компьютере без языкового пакета он не работал.

Я ищу предложения о том, как сделать эту работу. Программа довольно проста и написана на C ++ с использованием только Win32 API, GDI + и STL. Если возможно, я бы хотел придерживаться только этих библиотек. У меня есть UNICODE #defined.

Код, который я в основном использую для рисования текста, вставлен ниже:

#include <gdiplus.h>
using namespace Gdiplus ;

Graphics * gi ;

PrivateFontCollection _fonts ;
_fonts.AddFontFile(fontFilename) ;
Font * currentFont = new Font(fontName, fontSize, FontStyleRegular, UnitPoint, &_fonts) ;

std::wstring text = L"Some text" ;
gi->DrawString(text.c_str(), (INT)text.size(), currentFont, rectangle, &format, &brush) ;

Ответы [ 3 ]

1 голос
/ 15 марта 2009

Я был не прав. Если у вас есть шрифт, включающий японские символы, он будет корректно отображаться в Windows XP, даже если не установлен языковой пакет для Восточной Азии.

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

Microsoft может бесплатно установить японский шрифт Meiryo Collection Version 5.00 . Также здесь есть страница с перечнем других японских шрифтов. Единственная проблема с перечисленными шрифтами - неясное лицензирование.

1 голос
/ 10 марта 2009

Решение довольно простое. Поскольку вы не хотите отправлять шрифт и не можете рассчитывать на доступность любого шрифта, вам придется отправлять изображения всех символов, которые вы хотите использовать. Я предлагаю использовать PNG, так как JPEG нацелен на фотографии (много небольших градиентов)

0 голосов
/ 05 мая 2009

Существует также шрифт Lucida Sans Unicode, который может помочь облегчить проблемы.

...