public static bool AskToPrint(this DataGrid grid, string headerLeftText, string headerCenterText = null, string headerRightText = null, string footerCenterText = null, string printJobDesc = "Print Document") { var dlg = new PrintDialog(); dlg.UserPageRangeEnabled = true; if (dlg.ShowDialog() == false) { return(false); } var uri = new Uri("/Repo2.SDK.WPF45;component/PrintTools/MatelichPaginators/DataGridPaginatorResourceDictionary1.xaml", UriKind.RelativeOrAbsolute); var rsrc = new ResourceDictionary { Source = uri }; var dSrc = new MatelichDataGridPaginator(grid, dlg, headerLeftText, headerCenterText, headerRightText, footerCenterText, rsrc); if (dlg.PageRangeSelection == PageRangeSelection.AllPages) { dlg.PrintDocument(dSrc, printJobDesc); } else { var rnge = new PageRangeDocumentPaginator(dSrc, dlg.PageRange); dlg.PrintDocument(rnge, printJobDesc); } return(true); }
public void Print_Document() { try { PrintDialog printDialog = new PrintDialog(); printDialog.PrintQueue = LocalPrintServer.GetDefaultPrintQueue(); printDialog.PrintTicket = printDialog.PrintQueue.DefaultPrintTicket; printDialog.PrintTicket.PageOrientation = _pageOrientation; printDialog.PrintTicket.PageScalingFactor = 100; printDialog.PrintTicket.PageMediaSize = new PageMediaSize(PageMediaSizeName.ISOA4); printDialog.PrintTicket.PageBorderless = PageBorderless.None; printDialog.PageRangeSelection = PageRangeSelection.AllPages; printDialog.UserPageRangeEnabled = true; printDialog.CurrentPageEnabled = true; printDialog.PrintTicket.PageResolution = new PageResolution(PageQualitativeResolution.High); if (printDialog.ShowDialog() == true) { if (printDialog.PrintQueue.FullName == "Microsoft XPS Document Writer") { MessageWindow.Show("\"Microsoft XPS Document Writer\" not supported!!"); return; } DocumentViewer viewer = PrintView; DocumentPaginator paginator = _fixedDocument.DocumentPaginator; if (printDialog.PageRangeSelection == PageRangeSelection.UserPages) { paginator = new PageRangeDocumentPaginator( _fixedDocument.DocumentPaginator, printDialog.PageRange); } else if (printDialog.PageRangeSelection == PageRangeSelection.CurrentPage) { paginator = new CurrentPageDocumentPaginator( _fixedDocument.DocumentPaginator, PrintView.MasterPageNumber); } _fixedDocument.PrintTicket = printDialog.PrintTicket; _documentName = _documentName.Replace("/", "-"); printDialog.PrintDocument(paginator, _documentName); } } catch (Exception e) { MessageBox.Show(e.Message); } }