2009-12-02 2 views
4

Несколько лет назад я создал приложение WinForms, которое было успешно развернуто. Следующая версия приложения должна поддерживать китайские и корейские символы. По эстетическим соображениям мой клиент хотел, чтобы весь текст в приложении отображался с семейством шрифтов Arial.Шрифт, связанный в реестре

Однако Arial не поддерживает символы китайского и корейского языков. На большинстве платформ механизм Windows Uniscribe Font Fallback адекватно выбирает шрифт для отображения восточноазиатских символов. Но на английском языке Windows XP шрифт, который он выбирает, ужасен.

Я искал решение этой проблемы с помощью Font Linking. Это позволит мне указать, какой шрифт следует использовать, когда Arial не может отобразить символ. Это кажется очень элегантным решением.

Проблема в том, что статья, в которой я ссылался, говорит, что добавление ссылок на шрифты через реестр официально не поддерживается. Кроме того, изменение ссылок на шрифты в реестре повлияет на весь компьютер, а не только на мое приложение.

У кого-нибудь есть опыт с добавленными ссылками на шрифты? Это сработало? Каковы ситуации, которые побьют меня позже?

+2

Если он еще не пришел с ОС, приобретите лицензию на Arial Unicode MS от Ascender Corp. Вы не можете победить цену. –

+0

@nobugz - Я согласен, что это будет самое простое решение, и в настоящее время это мой план возврата. Однако Arial Unicode MS не отображает некоторые из символов Восточной Азии, а также специфичные для региона шрифты. – epotter

+0

Кроме того, другое приложение, изменяющее ссылки на шрифты в реестре, будет влиять на весь компьютер и, как таковое, ваше приложение. –

ответ

3

Предложение «не поддерживается» в связанной статье сообщает вам, что вы не можете позвонить в службу поддержки Microsoft и подать жалобу, потому что вы неправильно использовали Regedit.exe и перепутали машину. Он не говорит, что привязка шрифтов не поддерживается.

Вы не можете отрицательно повлиять на другую программу, выполнив это. Связывание шрифтов не заменяет глифы, а заменяет отсутствующие. Раньше такая программа не отображала текст правильно. После того, как вы закончите, он покажет читаемый текст. Они купят вам очень хороший обед и некоторые танцующие девушки.

1

Вы можете использовать шрифт Arial Unicode MS?

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

+0

Я мог бы, но есть несколько причин, почему я бы предпочел не делать этого. Основная причина в том, что для этого требуется лицензия на перераспределение. Он включен в офис, поэтому большинство, но не все мои пользователи будут иметь его. – epotter

0

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

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

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

+0

Я подумал об этом, но это довольно большое приложение, и для его изменения потребуется 20+ пользовательских элементов управления. Часть моих мотивов, стоящих за этим вопросом, заключалась в том, чтобы увидеть, была ли стандартная практика связывания шрифтов, или если это было слишком умно. – epotter