使用GDI + Graphics.DrawString打印会产生垃圾字符

问题描述:

我正在使用GDI + Graphics.DrawString调用来打印带有中文字符的文档。所有文本都使用Unicode(WCHAR)。问题是,在一些电脑上(全部是1%),所有中文字符都变成了垃圾字符。它似乎试图解释不同代码页中的文本。使用GDI + Graphics.DrawString打印会产生垃圾字符

  1. 我发现只有常规样式(FontStyleRegular)中的字符有问题。大胆风格的字符都可以。
  2. 我也尝试打印到“Microsoft XPS Document Writer”打印机。问题是一样的。所以这不是打印机驱动程序的问题。
  3. 我已经调试过该程序,并且可以确保DrawString调用中的文本参数是正确的。

我已经通过将字体文件从优秀的计算机复制到有问题的计算机上解决了问题。