2011-04-18 35 views
7

我有一個使用文檔查看器的WPF應用程序。我也使用documentviewer.Print();以編程方式開始打印。但是,當它被按下時,它會打開Windows打印機的屏幕,並讓用戶必須在該屏幕上再次單擊「確定」才能啓動。有沒有辦法避免確認和make documentviewer.Print();立即在默認的Windows打印機上啓動打印作業?WPF DocumentViewer - 無確認打印

回答

7

所有你需要的是默認的打印隊列,您可以通過

var pq = LocalPrintServer.GetDefaultPrintQueue() 

從這個搞定了,你可以創建一個XpsDocumentWriter

var writer = PrintQueue.CreateXpsDocumentWriter(pq); 

現在,你可以從該DocumentPaginator您DocumentViewer通過Document property返回一個IDocumentPaginatorSource,它具有DocumentPaginator property

var paginator = documentviewer.Document.DocumentPaginator; 

,您可以發送到XpsDocumentWriter's Write method是正確的:

writer.Write(paginator); 

簡單,不是嗎?

+0

哇!是的,這確實很簡單,比我預想的要少得多。非常感謝你。 – 2011-04-18 15:50:31

+0

@JimBeam:(我對這個「簡單」一點諷刺) – Will 2011-04-18 15:51:38