WPF DocumentViewer - 无需确认即可打印

Unk*_*der 7 c# printing wpf documentviewer

我有一个WPF应用程序,我使用文档查看器.我也开始使用documentviewer.Print()进行编程打印; 但是,当按下该按钮时,它会使用Windows打印机调出屏幕,并使用户必须再次单击该屏幕上的"确定"才能启动.有没有办法避免确认并制作documentviewer.Print(); 立即在默认的Windows打印机上启动打印作业?

小智 7

您只需要默认的打印队列,您可以通过它来获取

var pq = LocalPrintServer.GetDefaultPrintQueue()
Run Code Online (Sandbox Code Playgroud)

从这里,您可以创建一个XpsDocumentWriter:

var writer = PrintQueue.CreateXpsDocumentWriter(pq);
Run Code Online (Sandbox Code Playgroud)

现在,你可以得到DocumentPaginator经由您的DocumentViewer 文档属性,它返回一个的IDocumentPaginatorSource DocumentPaginator属性:

var paginator = documentviewer.Document.DocumentPaginator;
Run Code Online (Sandbox Code Playgroud)

并且您可以将该权限发送到XpsDocumentWriter的Write方法:

writer.Write(paginator);
Run Code Online (Sandbox Code Playgroud)

简单,不是吗?