Step 2.) Create a form with text box and button (text box will hold the ZPL to send in this example). SendBytesToPrinter(szPrinterName, pBytes, dwCount) Send the converted ANSI string to the printer. PBytes = Marshal.StringToCoTaskMemAnsi(szString) Assume that the printer is expecting ANSI text, and then convert How many characters are in the string? Public static bool SendStringToPrinter(string szPrinterName, string szString)
#ZEBRA 450 PRINT DRIVER FOR MAC FREE#
Free the unmanaged memory that you allocated earlier. Send the unmanaged bytes to the printer.īSuccess = SendBytesToPrinter(szPrinterName, pUnmanagedBytes, nLength) Marshal.Copy(bytes, 0, pUnmanagedBytes, nLength) Copy the managed byte array into the unmanaged array. PUnmanagedBytes = Marshal.AllocCoTaskMem(nLength) Allocate some unmanaged memory for those bytes. Read the contents of the file into the array. Dim an array of bytes big enough to hold the file's contents. Public static bool SendFileToPrinter(string szPrinterName, string szFileName)įileStream fs = new FileStream(szFileName, FileMode.Open) If you did not succeed, GetLastError may give more information If (OpenPrinter(szPrinterName.Normalize(), out hPrinter, IntPtr.Zero))īSuccess = WritePrinter(hPrinter, pBytes, dwCount, out dwWritten) Public static bool SendBytesToPrinter(string szPrinterName, IntPtr pBytes, Int32 dwCount)īool bSuccess = false // Assume failure unless you specifically succeed. Returns true on success, false on failure. of bytes, the function sends those bytes to the print queue. When the function is given a printer name and an unmanaged array Public static extern bool WritePrinter(IntPtr hPrinter, IntPtr pBytes, Int32 dwCount, out Int32 dwWritten) Public static extern bool EndPagePrinter(IntPtr hPrinter)
Public static extern bool StartPagePrinter(IntPtr hPrinter) Public static extern bool EndDocPrinter(IntPtr hPrinter) Public static extern bool StartDocPrinter(IntPtr hPrinter, Int32 level, DOCINFOA di) Public static extern bool ClosePrinter(IntPtr hPrinter) Public static extern bool OpenPrinter( string szPrinter, out IntPtr hPrinter, IntPtr pd)