在打印FlowDocument时避免使用多个列

Nis*_*ant 7 printing wpf flowdocument

我正在编写代码以从FlowDocument打印.

        PrintDialog printDialog = new PrintDialog();
        bool? result = printDialog.ShowDialog();
        if (result == true)
        {
            FlowDocument fd = new FlowDocument();
            fd.Blocks.Add(new Paragraph(new Run(String.Format("Message:\r\n{0}\r\n", txtMessage.Text))));
            fd.PageHeight = printDialog.PrintableAreaHeight;
            fd.PageWidth = printDialog.PrintableAreaWidth;
            printDialog.PrintDocument((fd as IDocumentPaginatorSource).DocumentPaginator, "print test");
        }
Run Code Online (Sandbox Code Playgroud)

此代码将在一个页面中打印多个列.怎么避免这个?

Nis*_*ant 13

我想通了.我需要设置FlowDocument的ColumnWidth.

fd.PagePadding = new Thickness(50);
fd.ColumnGap = 0;
fd.ColumnWidth = printDialog.PrintableAreaWidth; 
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,我有简短的文档,正坐在这里挠头,想知道为什么只使用我页面的一半。我想知道为什么他们选择两列作为默认值? (2认同)