2016-04-26 69 views
3

現在通過所有papersources循環直接打印到「盤2」,代碼通過各打印機源循環,以獲得papersource名Tray 2如何在沒有

是否有快速的方法,而不是通過所有的資源循環?它打印速度慢,因爲我相信代碼每次與每臺紙張來源都與打印機通信。由於這是一臺網絡打印機,打印可能需要一分鐘時間!

我能想到的一個解決方案是將所有的papersources加載到一個數組中,然後找到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

這整個代碼實際上是不必要的,如果默認打印設置是確定可以跳過。在我們的環境中,某些打印機可能需要特定設置,如果需要此設置,請逐步完成代碼並找到具有所需紙張來源的陣列並將其硬編碼。