7
我有一個使用文檔查看器的WPF應用程序。我也使用documentviewer.Print();以編程方式開始打印。但是,當它被按下時,它會打開Windows打印機的屏幕,並讓用戶必須在該屏幕上再次單擊「確定」才能啓動。有沒有辦法避免確認和make documentviewer.Print();立即在默認的Windows打印機上啓動打印作業?WPF DocumentViewer - 無確認打印
我有一個使用文檔查看器的WPF應用程序。我也使用documentviewer.Print();以編程方式開始打印。但是,當它被按下時,它會打開Windows打印機的屏幕,並讓用戶必須在該屏幕上再次單擊「確定」才能啓動。有沒有辦法避免確認和make documentviewer.Print();立即在默認的Windows打印機上啓動打印作業?WPF DocumentViewer - 無確認打印
所有你需要的是默認的打印隊列,您可以通過
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);
簡單,不是嗎?
哇!是的,這確實很簡單,比我預想的要少得多。非常感謝你。 – 2011-04-18 15:50:31
@JimBeam:(我對這個「簡單」一點諷刺) – Will 2011-04-18 15:51:38