public DEVMODE GetPrinterSettings(string PrinterName)
    {
        DEVMODE dm;

        var pdc = new PRINTERDEFAULTSClass
        {
            pDatatype     = new IntPtr(0),
            pDevMode      = new IntPtr(0),
            DesiredAccess = PRINTER_ALL_ACCESS
        };
        var nRet = Convert.ToInt32(OpenPrinter(PrinterName,
                                               out hPrinter, pdc));
    }
 private static extern bool OpenPrinter([MarshalAs(UnmanagedType.LPStr)] string szPrinter, out IntPtr hPrinter, PRINTERDEFAULTSClass pdc);