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