8

我有一个使用文档查看器的 WPF 应用程序。我还使用 documentviewer.Print(); 以编程方式开始打印。但是,当按下它时,它会显示带有 Windows 打印机的屏幕,并且用户必须在该屏幕上再次单击“确定”才能开始。有没有办法避免确认并制作 documentviewer.Print(); 立即在默认的 Windows 打印机上开始打印作业?

4

1 回答 1

8

您所需要的只是默认的打印队列,您可以通过

var pq = LocalPrintServer.GetDefaultPrintQueue()

由此,您可以创建一个XpsDocumentWriter

var writer = PrintQueue.CreateXpsDocumentWriter(pq);

现在,您可以通过Document 属性从 DocumentViewer 获取DocumentPaginator,该属性返回一个具有DocumentPaginator 属性的 IDocumentPaginatorSource :

var paginator = documentviewer.Document.DocumentPaginator;

您可以将该权限发送给XpsDocumentWriter 的 Write 方法

writer.Write(paginator);

很简单,不是吗?

于 2011-04-18T14:56:30.283 回答