且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

WPF 流打印

更新时间:2022-09-22 22:50:18

原文:WPF 流打印

            PrintDialog printDialog = new PrintDialog();
            if (printDialog.ShowDialog() ==  true)
            {

                System.Printing.PrintCapabilities capabilities = printDialog.PrintQueue.GetPrintCapabilities(printDialog.PrintTicket);
                // double scale = Math.Min(capabilities.PageImageableArea.ExtentWidth / myscrollvier.ActualWidth, capabilities.PageImageableArea.ExtentHeight /
                //myscrollvier.ActualHeight);
                var x1 = flowDocument.PageWidth;
                var x2 = flowDocument.PageHeight;
                flowDocument.PageHeight = capabilities.PageImageableArea.ExtentHeight;
                flowDocument.PageWidth = capabilities.PageImageableArea.ExtentWidth;

                printDialog.PrintDocument(((IDocumentPaginatorSource)flowDocument).DocumentPaginator, "Flow Document Print Job");

                flowDocument.PageHeight = x2;
                flowDocument.PageWidth = x1;


            }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            PrintDialog printDialog = new PrintDialog();
            if (printDialog.ShowDialog() ==  true)
            {

                System.Printing.PrintCapabilities capabilities = printDialog.PrintQueue.GetPrintCapabilities(printDialog.PrintTicket);
                // double scale = Math.Min(capabilities.PageImageableArea.ExtentWidth / myscrollvier.ActualWidth, capabilities.PageImageableArea.ExtentHeight /
                //myscrollvier.ActualHeight);
                var x1 = flowDocument.PageWidth;
                var x2 = flowDocument.PageHeight;
                flowDocument.PageHeight = capabilities.PageImageableArea.ExtentHeight;
                flowDocument.PageWidth = capabilities.PageImageableArea.ExtentWidth;

                printDialog.PrintDocument(((IDocumentPaginatorSource)flowDocument).DocumentPaginator, "Flow Document Print Job");

                flowDocument.PageHeight = x2;
                flowDocument.PageWidth = x1;


            }
        }