如何在不循环浏览所有文件来源的情况下直接打印到“纸盘2”

时间:2016-04-26 23:23:34

标签: c# asp.net printing

现在,代码循环遍历每个打印机源以获取papersource名称Tray 2

是否有更快的方法而不是遍历所有来源?它打印速度慢,因为我认为代码每次都与每个文件源的打印机进行通信。由于这是一台网络打印机,打印时间可能需要一分钟!

我能想到的一个解决方案是将所有的papersource加载到一个数组中然后找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;
        }
}

1 个答案:

答案 0 :(得分:0)

这整个代码实际上是不必要的,如果默认打印设置正常,可以跳过。在我们的环境中,某些打印机可能需要特定设置,如果需要,则逐步执行代码并找到包含所需papersource的数组并对其进行硬编码。