【问题标题】:How to print directly to "Tray 2" without looping through all papersources如何直接打印到“纸盘 2”而不循环所有纸张来源
【发布时间】:2016-08-21 00:36:46
【问题描述】:

现在,代码正在遍历每个打印机源以获取纸张源名称Tray 2

有没有更快的方法而不是循环遍历所有源?打印速度很慢,因为我相信代码每次都在与打印机进行通信。由于这是一台网络打印机,打印可能需要一分钟!

我能想到的一个解决方案是将所有纸源加载到一个数组中,然后找到Tray 2,但我不知道该怎么做。

另一种解决方案是使用Tray 2 直接打印到源名称,但如何?

下面的代码是我们目前拥有的:

private void reportPrintingSystem_StartPrint(object sender, PrintDocumentEventArgs e)
{
    for (int i = 0; i < e.PrintDocument.PrinterSettings.PaperSources.Count; i++)
        if (e.PrintDocument.PrinterSettings.PaperSources[i].SourceName.Equals("Tray 2"))
        {
            e.PrintDocument.DefaultPageSettings.PaperSource = e.PrintDocument.PrinterSettings.PaperSources[i];
            e.PrintDocument.PrinterSettings.Copies = 1;
            break;
        }
}

【问题讨论】:

    标签: c# asp.net printing


    【解决方案1】:

    这整个代码真的是不必要的,如果默认打印设置没问题,可以跳过。在我们的环境中,某些打印机可能需要特定的设置,如果需要,请单步执行代码并找到具有所需纸张来源的数组并将其硬编码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-16
      • 2019-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-23
      相关资源
      最近更新 更多