C# 中用 api WritePrinter 打印中文的问题
声明为:
[DllImport( "winspool.Drv ", CallingConvention=CallingConvention.StdCall, CharSet=CharSet.Unicode, SetLastError=true, ExactSpelling=true)]
public static extern bool WritePrinter(IntPtr hPrinter, byte[] pBytes, int dwCount, ref int dwWritten);
调用:
bSuccess = WritePrinter(hPrinter, pBytes, dwCount, ref dwWritten);
但是只要打印内容是中文出来的就是乱码,英文字母和数字则没有问题
请问各位高手 怎么解决
------解决方案--------------------byte[] pBytes 编码格式的问题,
这个api用的是本机编码的吧,windows问unicode
在形成byte[]时用Encoding的unicode编码,
不行的话再用用别的编码形式试试
------解决方案--------------------可能是驱动问题,驱动程序不正确就打印不了中文!因为很多激光和喷墨打印机都没有汉字库,所以无法直接打印中文,在Windows下只有借助驱动程序,打印机才可以打印中文!
------解决方案--------------------楼主肯定是在做小票打印机的,呵呵,一般直接用wRiteFile,写口就行,速度很快的,一秒钟就可以打出来,:)
网上有相关类,你找一下就好
另外如果你用的西铁城的话,必须找他的手册 如果不写口,
直接用OPOS就好了
在C#写几句话就完了,但速度肯定没有写口的快.