求大神指点。。请问一下为什么在机器上测试打印可以打印出“囧”字,但是通过我们自己写的程序就打印不出来“囧”字。求回复。我换过好几种编码都无效。
另外用之前的打印机无论在新机器上和我们自己的电脑上都能够通过程序打印“囧”。
可能是打印机的问题,也可能是程序某个地方没搞好。求大神给个解决方案

解决方案 »

  1.   

    安装过.NET的,都可以预先打印到xps文档,用那个测试打印效果。还有打印预览帮助排查问题。总之只要字体选择正确,就一定可以打印出来,不要只考虑编码问题,打印还和字体相关。
      

  2.   

    public bool Write(String Mystring)
            {
                try
                {
                    if (iHandle != -1)
                    {
                        OVERLAPPED x = new OVERLAPPED();
                        int i = 0;                    byte[] mybyte = System.Text.Encoding.Default.GetBytes(Mystring);//对字符串进行处理转换为字节
                        bool b = WriteFile(iHandle, mybyte, mybyte.Length, ref   i, ref   x);
                        return b;//hb
                    }
                    else
                    {
                        throw new Exception("不能连接到打印机! ");
                    }
                }
                catch (Exception ex)
                {
                    return false;
                }
            }
    传入的是打印机的指令和要打印的数据
      

  3.   

    能调试吗?
    这几步就搞没了。 
     byte[] mybyte = System.Text.Encoding.Default.GetBytes(Mystring);//对字符串进行处理转换为字节
                        bool b = WriteFile(iHandle, mybyte, mybyte.Length, ref   i, ref   x);
                        return b;//hb
      

  4.   

    “囧” 放word中模拟显示下,看有不? 如果没有,试各种字体。