现在,代码循环遍历每个打印机源以获取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;
}
}
答案 0 :(得分:0)
这整个代码实际上是不必要的,如果默认打印设置正常,可以跳过。在我们的环境中,某些打印机可能需要特定设置,如果需要,则逐步执行代码并找到包含所需papersource的数组并对其进行硬编码。