4

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

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

平台:Windows 7 Ultimate
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);
}
4

2 回答 2

5

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

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

它以您想要的方式给了我文本。
在你的printDoc_PrintPage().

替代文字

于 2010-11-08T23:01:30.370 回答
1

感谢 Albin 和 Beemer 的积极回应。

在 c# google 组中发表了几篇文章之后。已确认 GDI+ 中有一个错误,该错误会错误地将某些脚本(在本例中为“高棉”)显示为不同的措辞。

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

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

于 2010-11-10T01:31:03.457 回答