예제 #1
0
        private void OnPrint(object sender, RoutedEventArgs e)
        {
            var printDialog = new PrintDialog();

            if (printDialog.ShowDialog() == true)
            {
                var flowDocument = DocReader.Document;

                // Save all the existing settings.
                var pageHeight  = flowDocument.PageHeight;
                var pageWidth   = flowDocument.PageWidth;
                var pagePadding = flowDocument.PagePadding;
                var columnGap   = flowDocument.ColumnGap;
                var columnWidth = flowDocument.ColumnWidth;

                // Make the FlowDocument page match the printed page.
                flowDocument.PageHeight  = printDialog.PrintableAreaHeight;
                flowDocument.PageWidth   = printDialog.PrintableAreaWidth;
                flowDocument.PagePadding = new Thickness(50);

                // Use two columns.
                flowDocument.ColumnGap   = 25;
                flowDocument.ColumnWidth = (flowDocument.PageWidth - flowDocument.ColumnGap
                                            - flowDocument.PagePadding.Left -
                                            flowDocument.PagePadding.Right) / 2;

                var document = flowDocument;
                DocReader.Document = null;

                var paginator = new HeaderedFlowDocumentPaginator(document);
                printDialog.PrintDocument(paginator, "A Flow Document");

                DocReader.Document = document;

                // Reapply the old settings.
                flowDocument.PageHeight  = pageHeight;
                flowDocument.PageWidth   = pageWidth;
                flowDocument.PagePadding = pagePadding;
                flowDocument.ColumnGap   = columnGap;
                flowDocument.ColumnWidth = columnWidth;
            }
        }
        private void cmdPrint_Click(object sender, RoutedEventArgs e)
        {
            PrintDialog printDialog = new PrintDialog();

            if (printDialog.ShowDialog() == true)
            {
                // Save all the existing settings.
                double    pageHeight  = docReader.Document.PageHeight;
                double    pageWidth   = docReader.Document.PageWidth;
                Thickness pagePadding = docReader.Document.PagePadding;
                double    columnGap   = docReader.Document.ColumnGap;
                double    columnWidth = docReader.Document.ColumnWidth;

                // Make the FlowDocument page match the printed page.
                docReader.Document.PageHeight  = printDialog.PrintableAreaHeight;
                docReader.Document.PageWidth   = printDialog.PrintableAreaWidth;
                docReader.Document.PagePadding = new Thickness(50);

                // Use two columns.
                docReader.Document.ColumnGap   = 25;
                docReader.Document.ColumnWidth = (docReader.Document.PageWidth - docReader.Document.ColumnGap
                                                  - docReader.Document.PagePadding.Left - docReader.Document.PagePadding.Right) / 2;

                FlowDocument document = docReader.Document;
                docReader.Document = null;

                HeaderedFlowDocumentPaginator paginator = new HeaderedFlowDocumentPaginator(document);
                printDialog.PrintDocument(paginator, "A Flow Document");

                docReader.Document = document;

                // Reapply the old settings.
                docReader.Document.PageHeight  = pageHeight;
                docReader.Document.PageWidth   = pageWidth;
                docReader.Document.PagePadding = pagePadding;
                docReader.Document.ColumnGap   = columnGap;
                docReader.Document.ColumnWidth = columnWidth;
            }
        }
        private void cmdPrint_Click(object sender, RoutedEventArgs e)
        {
            PrintDialog printDialog = new PrintDialog();
            if (printDialog.ShowDialog() == true)
            {
                // Save all the existing settings.                                
                double pageHeight = docReader.Document.PageHeight;
                double pageWidth = docReader.Document.PageWidth;
                Thickness pagePadding = docReader.Document.PagePadding;
                double columnGap = docReader.Document.ColumnGap;
                double columnWidth = docReader.Document.ColumnWidth;

                // Make the FlowDocument page match the printed page.
                docReader.Document.PageHeight = printDialog.PrintableAreaHeight;
                docReader.Document.PageWidth = printDialog.PrintableAreaWidth;
                docReader.Document.PagePadding = new Thickness(50);

                // Use two columns.
                docReader.Document.ColumnGap = 25;
                docReader.Document.ColumnWidth = (docReader.Document.PageWidth - docReader.Document.ColumnGap
                    - docReader.Document.PagePadding.Left - docReader.Document.PagePadding.Right) / 2;

                FlowDocument document = docReader.Document;
                docReader.Document = null;
                
                HeaderedFlowDocumentPaginator paginator = new HeaderedFlowDocumentPaginator(document);
                printDialog.PrintDocument(paginator, "A Flow Document");

                docReader.Document = document;

                // Reapply the old settings.
                docReader.Document.PageHeight = pageHeight;
                docReader.Document.PageWidth = pageWidth;
                docReader.Document.PagePadding = pagePadding;
                docReader.Document.ColumnGap = columnGap;
                docReader.Document.ColumnWidth = columnWidth;
            }
        }