public bool AddCustomclawPDFPrinter(string name) { bool printerAdded = false; PRINTER_INFO_2 clawPDFPrinter = new PRINTER_INFO_2(); clawPDFPrinter.pServerName = null; clawPDFPrinter.pPrinterName = name; clawPDFPrinter.pPortName = PORTNAME; clawPDFPrinter.pDriverName = DRIVERNAME; clawPDFPrinter.pPrintProcessor = PRINTPROCESOR; clawPDFPrinter.pDatatype = "RAW"; clawPDFPrinter.Attributes = 0x00000002; int clawPDFPrinterHandle = NativeMethods.AddPrinter(null, 2, ref clawPDFPrinter); if (clawPDFPrinterHandle != 0) { // Added ok int closeCode = NativeMethods.ClosePrinter((IntPtr)clawPDFPrinterHandle); printerAdded = true; } else { Console.WriteLine("Could not add clawPDF virtual printer. " + String.Format(WIN32ERROR, Marshal.GetLastWin32Error().ToString())); } return(printerAdded); }
internal static extern int AddPrinter(string pName, uint Level, [In] ref PRINTER_INFO_2 pPrinter);