也来一篇关于Infragistics WPF Report的使用教程 (二)

前一篇介绍了如何定义Infragistics报表, 在实际开发过程中还遇到一个问题


在调整了纸张的大小, 改为自定义纸张之后, 生成报表之后 , 点击打印按钮, 打出来的都是空的纸. 但是明明报表中是有内容的. 但是直接使用代码打印就没有问题. 因此, 为了解决这个问题, 我取消掉了报表预览, 直接使用了代码打印.


在XamReportViewer的OnProcessingCompleted中加上如下打印代码, 即可实现加载完成后自动打印. 

 private void XamReportViewer_OnProcessingCompleted(object sender, ProcessingCompletedEventArgs e)
        {
          
            XamReportViewer repPrint = sender as XamReportViewer;
            Dispatcher.BeginInvoke(new Action(() =>
            {
                if (repPrint != null)
                {
                    LocalPrintServer localPrintServer = new LocalPrintServer();
                    PrintQueue defaultPrintQueue = localPrintServer.DefaultPrintQueue;
                    PageSettings currentPageSettings = repPrint.GetCurrentPageSettings();
                    PaperSettings paperSettings = new PaperSettings(currentPageSettings.PaperSize, currentPageSettings.PageOrientation);
                    repPrint.Print(paperSettings, defaultPrintQueue, Infragistics.Controls.Reports.PageRange.All);
                    this.Close();
                }
            }), System.Windows.Threading.DispatcherPriority.Background, null);  
        }


你可能感兴趣的:(report,WPF,Infragistics)