private static void UpdateSettings(System.Windows.Forms.NativeMethods.PAGESETUPDLG data, System.Drawing.Printing.PageSettings pageSettings, System.Drawing.Printing.PrinterSettings printerSettings) { System.Windows.Forms.IntSecurity.AllPrintingAndUnmanagedCode.Assert(); try { pageSettings.SetHdevmode(data.hDevMode); if (printerSettings != null) { printerSettings.SetHdevmode(data.hDevMode); printerSettings.SetHdevnames(data.hDevNames); } } finally { CodeAccessPermission.RevertAssert(); } Margins margins = new Margins { Left = data.marginLeft, Top = data.marginTop, Right = data.marginRight, Bottom = data.marginBottom }; PrinterUnit fromUnit = ((data.Flags & 8) != 0) ? PrinterUnit.HundredthsOfAMillimeter : PrinterUnit.ThousandthsOfAnInch; pageSettings.Margins = PrinterUnitConvert.Convert(margins, fromUnit, PrinterUnit.Display); }
private static void UpdatePrinterSettings(IntPtr hDevMode, IntPtr hDevNames, short copies, int flags, System.Drawing.Printing.PrinterSettings settings, System.Drawing.Printing.PageSettings pageSettings) { settings.SetHdevmode(hDevMode); settings.SetHdevnames(hDevNames); if (pageSettings != null) { pageSettings.SetHdevmode(hDevMode); } if (settings.Copies == 1) { settings.Copies = copies; } settings.PrintRange = ((PrintRange) flags) & (PrintRange.CurrentPage | PrintRange.SomePages | PrintRange.Selection); }