【问题标题】:WPF Printing - Set the Printer Automataically on WPF PrintDialogWPF 打印 - 在 WPF PrintDialog 中自动设置打印机
【发布时间】:2023-04-09 09:17:01
【问题描述】:

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

【问题讨论】:

    标签: wpf printing flowdocument


    【解决方案1】:

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

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

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

    【讨论】:

    • 太棒了!我花了一整天,想不通。感谢您的帮助。
    • 顺便问一下,如何指定网络打印机,如 \\servername\printername
    • @Praveena,我不确定网络打印机的确切语法是什么。我总是从“打印”对话框中获取字符串并使用它。
    • 嗨,我得到了这个工作 printDlg.PrintQueue = new PrintQueue(new PrintServer(@"\\servername"), "printername");你的例子帮助我思考这个问题。
    • @Praveena 它可以使用(new PrintServer(@"\\server IP") 而不是服务器名称吗?
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多