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);
            }
        }
        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);
        }