【问题标题】:How to print file in specific Printer?如何在特定打印机中打印文件?
【发布时间】:2020-03-13 13:52:56
【问题描述】:

我想用特定的打印机打印我的文件。但是,它总是为作业选择相同的打印机。我将Spire.Pdf; 用于.NET。我的代码如下:

[...]
     PdfDocument pdf = new PdfDocument();
     pdf.LoadFromFile(path);
     pdf.PrintSettings.PrinterName = "HP";

     pdf.Print();
     pdf.Dispose();
[...]

我有两台打印机。其中一款名为“EPSON L310 Series”,另一款为名为“HP”的打印机。 即使我设置了pdf.PrintSettings.PrinterName = "HP";,它也会为打印作业选择“EPSON L310 系列”。

如您所见,在打印对话框中默认选择“HP”。

【问题讨论】:

  • PdfDocument 的班级来自哪里?不能是this Microsoft class,因为它没有Print() 方法。
  • 它是“使用 Spire.Pdf;” @MatthewWatson
  • 如果你在调用pdf.Print()之前输入pdf.PrintSettings.PrintController = new StandardPrintController();会发生什么?
  • 还可以查看this sample,它使用PrinterSettings.InstalledPrinters 来确定可用的打印机。你可能想把它转储出来看看它认为什么是可用的。

标签: c#


【解决方案1】:

您无法通过程序可靠地控制输出打印机。

您最多可以显示打印对话框,用户这次可以在其中覆盖输出打印机。

您可以照常命名。甚至可以按名称获取所有打印机:How to get the list of all printers in computer 但是,此时,您基本上是在重新发明打印对话框。

另请注意,从技术上讲,它们不是打印机。这些是打印队列。对于这样一个简单的情况,它可能并不重要。但是,一旦您了解更精细的细节,例如每个队列有多台打印机,它就很重要了。

【讨论】:

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