public static bool SendBytesToPrinter(string szPrinterName, IntPtr pBytes, int dwCount) { int num = 0; IntPtr hPrinter = new IntPtr(0); RawPrinterHelper.DOCINFOA dOCINFOA = new RawPrinterHelper.DOCINFOA(); bool flag = false; dOCINFOA.pDocName = "LabelFile" + DateTime.Now.ToString("yyyyMMddHHmmss"); dOCINFOA.pDataType = "RAW"; if (RawPrinterHelper.OpenPrinter(szPrinterName.Normalize(), out hPrinter, IntPtr.Zero)) { if (RawPrinterHelper.StartDocPrinter(hPrinter, 1, dOCINFOA)) { if (RawPrinterHelper.StartPagePrinter(hPrinter)) { flag = RawPrinterHelper.WritePrinter(hPrinter, pBytes, dwCount, out num); RawPrinterHelper.EndPagePrinter(hPrinter); } RawPrinterHelper.EndDocPrinter(hPrinter); } RawPrinterHelper.ClosePrinter(hPrinter); } if (!flag) { int lastWin32Error = Marshal.GetLastWin32Error(); } return(flag); }
public static extern bool StartDocPrinter(IntPtr hPrinter, int level, [MarshalAs(UnmanagedType.LPStruct)][In] RawPrinterHelper.DOCINFOA di);