/// <summary> /// Shows advanced printer settings /// </summary> /// <param name="handle">window handle</param> /// <param name="printerName">printer name</param> /// <param name="settings">settings</param> public void ShowAdvancedPrinterSettings(IntPtr handle, string printerName, ref System.Drawing.Printing.PrinterSettings settings) { // check the printer settings if (settings == null || !settings.IsValid) { LogHelper.LogDebug("Invalid printer settings for " + printerName); return; } LogHelper.LogDebug(); try { // create new printer settings System.Drawing.Printing.PrinterSettings ps = new System.Drawing.Printing.PrinterSettings(); // set new settings as an old one ps = settings; // show printer settings window as dialog for the current window if (PrintDialogHelper.EditPrinterSettings(ps, handle) == System.Windows.Forms.DialogResult.OK) { LogHelper.LogDebug("Printer settings changed"); // save changed printer settings settings = ps; } } catch (Exception ex) { WPFNotifier.Error(ex); } }
/// <summary> /// Shows advanced printer settings /// </summary> /// <param name="owner"></param> /// <param name="printerName"></param> public void ShowAdvancedPrinterSettings(Form owner, string printerName, ref PrinterSettings settings) { if (settings == null || !settings.IsValid) { LogHelper.LogDebug("Invalid printer settings for " + printerName); return; } LogHelper.LogDebug(); try { PrinterSettings ps = new PrinterSettings(); ps = settings; // show printer settings if (PrintDialogHelper.EditPrinterSettings(ps, owner.Handle) == DialogResult.OK) { // save printer settings LogHelper.LogDebug("Printer settings changed"); settings = ps; } } catch (Exception ex) { Notifier.Error(ex); } }
public PrintView() { InitializeComponent(); var printDialogHelper = new PrintDialogHelper(); printDialogHelper.PrintVisual(root); }
public static bool PrintTextWithDialog(RichTextBox box, out List <Exception> exceptions, ObservableCollection <Color> predefColors, ref PrintSettings settings, string defaultFilename, ObservableCollection <Character> characters) { exceptions = new List <Exception>(); var flowDocument = box.Document.CopyWithTickness(new Thickness(0)); flowDocument.HidePageBreaker(); var print = new PrintDialogHelper(flowDocument, characters, settings.FontFamily, settings.FontSize, settings.UseCharacters) { Owner = MainWindow.Global, CanUseWaterMark = settings.Watermark != null, CanUseCharacters = characters != null && characters.Any(), PageCountElement = settings.PageCountElement, PredefinedColors = predefColors, BackgroundBrush = settings.BackgroundBrush, FontSizeInc = settings.FontSizeModifier, KeepOldNumbering = settings.UseOldNumbering, IsBlackAndWhite = settings.UseBlackAndWhite, UseWaterMark = settings.UseWatermark, UseCharacters = settings.UseCharacters, ShowPageCount = settings.ShowPageNumber }; print.ShowDialog(); if (print.Result == MessageBoxResult.Cancel) { return(false); } settings.UseBlackAndWhite = print.IsBlackAndWhite; settings.ShowPageNumber = print.ShowPageCount; settings.UseOldNumbering = print.KeepOldNumbering; settings.UseWatermark = print.UseWaterMark; settings.UseCharacters = print.UseCharacters; settings.PageCountElement = print.PageCountElement; settings.BackgroundBrush = print.BackgroundBrush; settings.FontSizeModifier = print.FontSizeInc; if (print.Result == MessageBoxResult.Yes) { return(true); } var defaultName = !string.IsNullOrEmpty(defaultFilename)? defaultFilename: MainWindow.GetDefaultName(box.GetText()); string pdfFilename = GetFileName(defaultName); settings.PdfName = pdfFilename; settings.Document = print.Document; settings.From = print.From; settings.Till = print.Till; UiServices.SetBusyState(); exceptions = PrintText(settings); settings.PageCountElement = print.PageCountElement; return(!exceptions.Any()); }