2009-11-21 114 views
0

我为客户端构建了一个简单的电子卡创建者Web应用程序,该应用程序接受个人问候语并将其绘制到选定的卡片设计上。在我的本地机器上,我可以输入亚洲语言,文本在图像上正确绘制。我的机器上安装了亚洲语言。C#支持亚洲语言

当我将应用程序加载到客户端的服务器时,亚洲语言显示为框。我怀疑这是因为他们的服务器没有安装亚洲语言包。但我想知道,是这个原因吗?有没有办法接受亚洲语言,并正确显示它没有安装亚洲语言包?

这里是我是如何绘制文本到图像

Graphics g = Graphics.FromImage(image); 
g.InterpolationMode = InterpolationMode.HighQualityBicubic; 
g.DrawString(text, 
    new Font(fontFamily, fontSize), 
    brushColor, 
    position, 
    strFormat); 
g.Dispose(); 

我使用Arial字体。

有什么特别的我需要做的吗?

谢谢。

+1

小提示:在图形对象周围使用'using'关键字来确保您不要过早地处理物体。 – RCIX 2009-11-21 01:42:52

+0

@RCIX非常感谢! – Daniel 2009-11-21 02:13:50

回答

2

宋体不包含你所需要的字符,但如果安装了东亚字体,Windows可以使用汉字是从那些代替Arial。您可以安装字体,选择要使用的新字体,或使用font linking将Arial与亚洲字符的其他字体匹配。 (如果您使用该文章中的说明设置字体链接,那么应该用于机器上的所有软件,而不仅仅是您的应用程序。)

+0

Windows默认支持任何支持亚洲语言的字体吗?我的客户IT非常不愿意在他们的服务器上进行更改......如果他们不想安装字体,是否正在使用支持亚洲语言的问题? Mark的链接似乎很有前途,但他们只有ASP.NET 2.0。 – Daniel 2009-11-21 02:22:32

+0

是的,但在旧版本(XP,2003)上,默认情况下不安装它们。如果我记得,您可以从区域和语言选项控制面板安装它们。 如果他们不想安装新的字体,您可以使用其他一些解决方案来包含您的应用程序所需的字体,但这会增加复杂性,并且很可能增加成本 - 如果你不会使用Windows附带的字体,你需要许可一些不同的字体。字体与软件一样拥有许可条款,好的一般不是免费的。 – Travis 2009-11-21 20:40:40

+0

谢谢莫博。我会让他们知道他们的选择。 – Daniel 2009-11-22 23:19:03

1

我认为你需要一种支持你正在使用的亚洲字母的字体。例如,我的机器安装了“Arial Unicode MS”字体,我认为这是与Microsoft Office一起安装的。

+1

Arial Unicode MS随Office一起安装,但不能自由重新分发。它必须获得许可。 – epotter 2009-12-02 18:32:02