我正在尝试使用.NET框架提供的PrintDocument将khmer脚本(unicode)字符串发送到打印机。
不幸的是,在我看来,Graphics.DrawString()不能正确呈现高棉脚本。
平台:Windows 7旗舰版 IDE:VS 2010 Ultimate
以下是示例代码:
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);
}
答案 0 :(得分:5)
曼,
我在Form_Paint()
处理程序上测试了你的代码,我得到了你所说的
但是当我用它时:
TextRenderer.DrawText(e.Graphics, text, font, new Point(100, 100), Color.Black);
它以你想要的方式给了我文字。
试试printDoc_PrintPage()
。
答案 1 :(得分:0)
感谢Albin和Beemer的积极响应。
在c#google小组中发帖几篇。已经确认GDI +中存在错误地将某些脚本(在本例中为“高棉”)错误地显示为不同的措辞。
创建了一个本机win32测试应用程序来验证GDI + DrawString()的问题。
已向Microsoft Connect提交错误报告:http://connect.microsoft.com/VisualStudio/feedback/details/620081/