13

我正在尝试将 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 中看不到。

4

2 回答 2

21

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

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

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

于 2013-04-08T14:44:37.347 回答
4

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

xPrintDialog.PrintQueue = New PrintQueue(New PrintServer("\\computer name"), "printer name")
于 2016-03-03T20:41:18.713 回答