现在,代码正在遍历每个打印机源以获得papersource名称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;
}
}发布于 2016-04-27 20:42:16
这整个代码实际上是不必要的,如果默认的打印设置是可以的,可以跳过。在我们的环境中,一些打印机可能需要特定的设置,如果需要的话,那么逐步遍历代码并找到数组,其中包含所需的papersource和硬代码。
https://stackoverflow.com/questions/36877529
复制相似问题