2013-04-08 13 views
8

Próbuję wydrukować dokument przepływu WPF do konkretnej drukarki bez pytania użytkownika. Drukarka jest konwerterem PDF.Drukowanie WPF - ustaw drukarkę w trybie automatycznym na drukarce WPF PrintDialog

Działa to doskonale z wyjątkiem, że drukuje go do domyślnej drukarki:

PrintDialog pd = new PrintDialog(); 
    var doc = ((IDocumentPaginatorSource) RTB.Document).DocumentPaginator; 
    // I would like to explicitly set the printer to print to here. 
    pd.PrintDocument(doc, "Print Document"); 

W WinForms Jest System.Drawing.Printing.PrinterSettings sprzeciwu na dokumencie, który ma właściwość printername który może być ustawiony na drukarce Chcę, ale nie widzę tego w WPF.

Odpowiedz

15

Najpierw potrzebujesz referencji w swoim projekcie na System.Printing. Następnie możesz użyć następującego kodu zaraz po zadeklarowaniu obiektu PrintDialog.

pd.PrintQueue = new PrintQueue(new PrintServer(), "The exact name of my printer"); 

The PrintQueue jest obiektem, który reprezentuje drukarkę i wszystko inne o tej kolejki wydruku.

+0

Brilliant! Spędziłem cały dzień i nie mogłem tego rozgryźć. Dzięki za pomoc. – BrokeMyLegBiking

+1

Swoją drogą, jak określasz drukarkę sieciową, taką jak \\ servername \ printername – Praveena

+0

@Praveena, nie jestem pewien jaka jest dokładna składnia drukarki sieciowej. Zawsze po prostu chwytam ciąg znaków z okna dialogowego drukowania i używam tego. – Stewbob

2

ten pracował dla mnie, gdy użyłem udostępnioną drukarkę sieciową:

xPrintDialog.PrintQueue = New PrintQueue(New PrintServer("\\computer name"), "printer name") 
Powiązane problemy