WPF DocumentViewer - 无需确认即可打印

8

我有一个WPF应用程序,其中使用了文档查看器。我还通过documentviewer.Print()编程启动打印。然而,当按下该按钮时,它会弹出带有Windows打印机的屏幕,并使用户再次单击“确定”才能开始。是否有方法可以避免确认并使documentviewer.Print()立即在默认的Windows打印机上启动打印作业?

1个回答

8

您所需要的是默认的打印队列,您可以通过以下方式获取:

var pq = LocalPrintServer.GetDefaultPrintQueue()

从这里,你可以创建一个 XpsDocumentWriter
var writer = PrintQueue.CreateXpsDocumentWriter(pq);

现在,您可以通过Document属性从您的DocumentViewer获取DocumentPaginator,该属性返回一个IDocumentPaginatorSource,其中包含一个DocumentPaginator属性
var paginator = documentviewer.Document.DocumentPaginator;

你可以直接将其发送到XpsDocumentWriter的Write方法

writer.Write(paginator);

简单,不是吗?


哇!是的,这确实很简单,比我预计的要容易得多。非常感谢你。 - Unknown Coder
@JimBeam:(我说“简单”只是在讽刺) - user1228

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接