Example #1
0
        public void PrintForm(Form form, PrintSettings printSettings = null, MarginsI margins = null)
        {
            try {
                GtkFormPrintDocument doc = new GtkFormPrintDocument(form);
                if (margins != null)
                {
                    doc.SetDefaultMargins(margins.Top, margins.Bottom, margins.Left, margins.Right, margins.UnitType);
                }

                string printerName = null;
                if (printSettings != null)
                {
                    doc.PrintSettings = printSettings.Copy();
                    if (!string.IsNullOrWhiteSpace(printSettings.Printer))
                    {
                        printerName = printSettings.Printer;
                    }

                    doc.DefaultPageSetup.Orientation = printSettings.Orientation;
                    if (printSettings.PaperSize != null &&
                        printSettings.PaperSize.IsCustom)
                    {
                        doc.DefaultPageSetup.PaperSize = printSettings.PaperSize;
                    }
                }

                doc.SetPrinterSettings(printerName);

                doc.Run(PrintOperationAction.Print, ComponentHelper.TopWindow);
            } catch (Exception ex) {
                ErrorHandling.LogException(ex, ErrorSeverity.FatalError);
            }
        }