WPF打印 - 在WPF PrintDialog中自动设置打印机

时间:2013-04-08 13:20:25

标签: wpf printing flowdocument

我正在尝试将WPF FlowDocument打印到特定的打印机,而不提示用户。打印机是PDF转换器。

除非打印到默认打印机,否则效果很好:

   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");

在WinForms中,文档上有一个System.Drawing.Printing.PrinterSettings对象,它有一个PrinterName属性,可以设置为我想要的打印机,但我在WPF中看不到。

2 个答案:

答案 0 :(得分:17)

您首先需要在项目中引用System.Printing。然后,您可以在声明PrintDialog对象后立即使用以下代码。

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

PrintQueue是一个对象,代表打印机以及有关该打印队列的所有其他内容。

答案 1 :(得分:4)

当我使用共享网络打印机时,这对我有用:

xPrintDialog.PrintQueue = New PrintQueue(New PrintServer("\\computer name"), "printer name")