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);
        }
示例#2
0
        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);
            }
        }