检查是否在wpf中将打印命令发送到打印机

时间:2014-01-08 03:29:44

标签: c# wpf printing

我用

 printDialog.PrintVisual(document, "doc"); 

在用户单击WPF应用程序中的打印按钮时打开默认打印机的打印对话框。问题是我想知道用户是否点击了外部打印对话框中的“打印”按钮或“取消”按钮。我想根据用户操作显示相应的消息。

是否在WPF打印过程中实现了回调函数?

由于

2 个答案:

答案 0 :(得分:1)

PrintDialog类上的ShowDialog方法返回一个布尔值,指示是否按下了打印按钮。

PrintDialog dialog = new PrintDialog(); 
if (dialog.ShowDialog()) 
  printDialog.PrintVisual(document, "doc"); 

答案 1 :(得分:0)

<强> 1。创建PrintDialog

以下代码在WPF代码中创建PrintDialog。

// Create a PrintDialog
PrintDialog printDlg = new PrintDialog();

<强> 2。创建FlowDocument

FlowDocument对象用于创建FlowDocument。它有段落,运行,线,图像等项目。以下代码段创建FlowDocument并向文档添加一行文本。

// Create a FlowDocument dynamically.
FlowDocument doc = new FlowDocument(new Paragraph(new Run("Some text goes here")));
doc.Name = "FlowDoc";

第3。创建一个IDocumentPaginatorSource

第三步是从FlowDocument创建一个IDocumentPaginatorSource对象,该对象非常简单,如此处所列。您可以直接将FlowDocument转换为IDocumentPaginatorSource。

// Create IDocumentPaginatorSource from FlowDocument
IDocumentPaginatorSource idpSource = doc;

<强> 4。调用PrintDialog.PrintDocument方法

最后一步是调用PrintDialog.PrintDocument方法调用打印对话框,该对话框允许您选择打印机并将文档发送到打印机进行打印。 PrintDialog的PrintDocument方法接受一个DocumentPaginator对象,您可以从IDocumentPaginatorSource.DocumentPaginator属性获取该对象,如下面的代码所示:

// Call PrintDocument method to send document to printer
printDlg.PrintDocument(idpSource.DocumentPaginator, "Hello WPF Printing."); 

c-sharpcorner