我正在使用FlowDocument、FlowDocumentPaginator和PrintDialog在WPF中打印纯文本。我的方法基于this article,实现如下:
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");
}
这适用于打印窄宽内容的情况。但是当我尝试打印一个长字符串时,所有内容都塞在了一个小区域里:
我在打印对话框的 PrintTicket
和分页器中检查了尺寸,它们似乎都没问题: