使用System.Windows.Controls.PrintDialog打印字符串对象

时间:2018-08-16 18:38:19

标签: c# wpf printing

我的项目需要使用WPF System.Windows.Controls.PrintDialog之类的东西将简单的字符串对象打印到所选的打印机上。

我创建了一个标准的System.Drawing.Printing.PrintDocument,但是它没有属于PrintDialog类的PrintDocument()方法所需的DocumentPaginator。

这似乎是一项琐碎的任务,需要使用对话框显示字符串来向打印机打印字符串以显示打印机的选择,但是要困难得多。请帮忙!

1 个答案:

答案 0 :(得分:0)

由于您使用的是WPF,而不是使用PrintDocument,因此只需创建一个FlowDocument。我认为这要容易得多。

var dlg = new PrintDialog();
dlg.PageRangeSelection = PageRangeSelection.AllPages;
dlg.UserPageRangeEnabled = false;
if(dlg.ShowDialog() == true)
{                
    var doc = new FlowDocument();
    // For normal A4&/letter pages, the defaults will print in two columns
    doc.ColumnWidth = dlg.PrintableAreaWidth;
    doc.Blocks.Add(new Paragraph(new Run("My arbitrary long string to print.\nNewlines work. Pages will break as needed.")));
    dlg.PrintDocument(((IDocumentPaginatorSource)doc).DocumentPaginator, "Simple document");
}