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); } }
protected PrintPreview CreatePrintPreview(GtkFormPrintDocument formPrintDocument, Container container) { PrintPreview printPreview = new PrintPreview(Translator.GetHelper()); printPreview.Document = formPrintDocument; printPreview.Portrait = portrait; printPreview.ModifyBg(StateType.Normal, new Color(220, 220, 220)); printPreview.ModifyFg(StateType.Normal, new Color(255, 255, 255)); printPreview.StartPageChanged += CurrentPreview_StartPageChanged; printPreview.TotalPagesChanged += CurrentPreview_TotalPagesChanged; printPreview.PagesPerSheetChanged += CurrentPreview_PagesPerSheetChanged; if (container.Children.Length > 0) { container.Remove(container.Children [0]); } container.Add(printPreview); printPreview.Initialize(); container.ShowAll(); return(printPreview); }