繁体   English   中英

如何使用C#graphics.DrawString绘制unicode字符串

[英]How to draw unicode string using C# graphics.DrawString

我正在尝试使用.NET框架提供的PrintDocument将khmer脚本(unicode)字符串发送到打印机。

不幸的是,在我看来,Graphics.DrawString()没有正确呈现高棉脚本。

平台:Windows 7旗舰版
IDE:VS 2010旗舰版

以下是示例代码:

void printDoc_PrintPage(object sender, PrintPageEventArgs e)
{
  var font = new Font("Khmer UI", 12);
  var text = "សួស្តី"; // "Hello"
  e.Graphics.DrawString(text, font, Brushes.Black, 100, 100);
}

曼,
我在Form_Paint()处理程序上测试了你的代码,我得到了你所说的。
但是当我使用它时:

TextRenderer.DrawText(e.Graphics, text, font, new Point(100, 100), Color.Black);  

它以你想要的方式给了我文本。
printDoc_PrintPage()上尝试一下。

替代文字

感谢Albin和Beemer的积极响应。

在c#google group中发帖几篇。 已经确认GDI +中存在一个错误,即错误地将某些脚本(在本例中为“高棉”)显示为不同的措辞。

创建了一个本机win32测试应用程序来验证GDI + DrawString()的问题。

已向Microsoft Connect提交错误报告: http//connect.microsoft.com/VisualStudio/feedback/details/620081/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM