日期:2014-05-19  浏览次数:20968 次

直接输出字符串到远程打印机,出问题,贴代码,100分急求解!在线等
代码可以直接输出到远程打印机,但是A4纸上的却是乱码,代码如下,急求解,请高手指教!谢谢

public   partial   class   Form1   :   Form
{
        public   struct   DOCINFO
        {
              [MarshalAs(UnmanagedType.LPWStr)]public   string   pDocName;
              [MarshalAs(UnmanagedType.LPWStr)]public   string   pOutputFile;
              [MarshalAs(UnmanagedType.LPWStr)]public   string   pDataType;
        }

        public   class   PrintDirect
        {
              [DllImport( "winspool.drv ",   CharSet   =   CharSet.Unicode,   ExactSpelling   =   false,
                      CallingConvention   =   CallingConvention.StdCall)]
                        public   static   extern   long   OpenPrinter(string   pPrinterName,   ref   IntPtr   phPrinter,
                        int   pDefault);

                        [DllImport( "winspool.drv ",   CharSet   =   CharSet.Unicode,   ExactSpelling   =   false,
                      CallingConvention   =   CallingConvention.StdCall)]
                        public   static   extern   long   StartDocPrinter(IntPtr   hPrinter,   int   Level,
                        ref   DOCINFO   pDocInfo);

                        [DllImport( "winspool.drv ",   CharSet   =   CharSet.Unicode,   ExactSpelling   =   true,
                      CallingConvention   =   CallingConvention.StdCall)]
                        public   static   extern   long   StartPagePrinter(IntPtr   hPrinter);
                        [DllImport( "winspool.drv ",   CharSet   =   CharSet.Ansi,   ExactSpelling   =   true,
                      CallingConvention   =   CallingConvention.StdCall)]
                        public   static   extern   long   WritePrinter(IntPtr   hPrinter,   string   data,
                        int   buf,   ref   int   pcWritten);

                        [DllImport( "winspool.drv ",   CharSet   =   CharSet.Unicode,   ExactSpelling   =   true,
                      CallingConvention   =   CallingConvention.StdCall)]