我有一个WPF应用程序,我使用文档查看器。我也开始使用documentviewer.Print()进行编程打印;但是,当按下该按钮时,它会使用Windows打印机调出屏幕,并使用户必须再次单击该屏幕上的“确定”才能启动。有没有办法避免确认并制作documentviewer.Print();立即在默认的Windows打印机上启动打印作业?
答案 0 :(得分:7)
您只需要默认的打印队列,您可以通过
获取var pq = LocalPrintServer.GetDefaultPrintQueue()
通过此,您可以创建XpsDocumentWriter:
var writer = PrintQueue.CreateXpsDocumentWriter(pq);
现在,您可以通过DocumentPaginator从DocumentViewer获取Document property,DocumentPaginator property会返回一个XpsDocumentWriter's Write method的IDocumentPaginatorSource:
var paginator = documentviewer.Document.DocumentPaginator;
您可以将该权利发送到{{3}}:
writer.Write(paginator);
简单,不是吗?