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