public static bool SendStringToPrinter(string szPrinterName, string szString) { int length = szString.Length; IntPtr intPtr = Marshal.StringToCoTaskMemAnsi(szString); RawPrinterHelper.SendBytesToPrinter(szPrinterName, intPtr, length); Marshal.FreeCoTaskMem(intPtr); return(true); }
public static bool SendFileToPrinter(string szPrinterName, string szFileName) { FileStream fileStream = new FileStream(szFileName, FileMode.Open); BinaryReader binaryReader = new BinaryReader(fileStream); byte[] array = new byte[fileStream.Length]; IntPtr intPtr = new IntPtr(0); int num = Convert.ToInt32(fileStream.Length); byte[] source = binaryReader.ReadBytes(num); IntPtr intPtr2 = Marshal.AllocCoTaskMem(num); Marshal.Copy(source, 0, intPtr2, num); bool result = RawPrinterHelper.SendBytesToPrinter(szPrinterName, intPtr2, num); Marshal.FreeCoTaskMem(intPtr2); fileStream.Close(); return(result); }