WPF FlowDocument仅打印到小面积

Gig*_*igi 3 c# printing wpf flowdocument

我通过使用FlowDocument,FlowDocumentPaginator和PrintDialog在WPF中打印纯文本。我的方法基于本文,并且实现如下:

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

            var paragraph = new Paragraph();
            paragraph.FontFamily = new FontFamily("Courier New");
            paragraph.FontSize = 10;
            paragraph.Margin = new Thickness(0);
            paragraph.Inlines.Add(new Run(this.textToPrint));

            flowDocument.FontSize = 10;
            flowDocument.Blocks.Add(paragraph);

            var paginator = ((IDocumentPaginatorSource)flowDocument).DocumentPaginator;
            printDialog.PrintDocument(paginator, "Chit");
        }
Run Code Online (Sandbox Code Playgroud)

这对于打印宽度较窄的东西很有用。但是,当我尝试打印一个长字符串时,它们全部塞在一个小区域中:

在此处输入图片说明

我在打印对话框PrintTicket和分页器中检查了尺寸,它们似乎还可以:

在此处输入图片说明

那么,是什么导致此问题,我该如何解决?

pap*_*zzo 6

这是我使用的一些代码

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

您需要告诉流程文档这是一栏,并告诉流程文档打印机的宽度。