2016-04-26 10 views
3

Gerade jetzt direkt auf „Behälter 2“ zu drucken, wird Schleife der Code durch jeden Drucker Quelle, um den Papierquellennamen Tray 2Wie ohne Schleife durch all papersources

zu erhalten ? Es wird langsam gedruckt, weil ich glaube, dass der Code für jede Papierquelle mit dem Drucker kommuniziert. Da es sich um einen Netzwerkdrucker handelt, kann das Drucken bis zu einer Minute dauern!

Eine Lösung, die ich mir vorstellen kann, ist das Laden aller Papierquellen in ein Array, dann finden Sie Tray 2, aber ich bin mir nicht sicher, wie dies zu tun ist.

Eine andere Lösung ist, direkt auf Quellenname mit Tray 2 zu drucken, aber wie?

Der Code unten ist das, was wir derzeit haben:

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; 
     } 
} 

Antwort

0

Dieses komplette Code wirklich nicht notwendig ist, und kann übersprungen werden, wenn Standard-Druckeinstellung in Ordnung ist. In unserer Umgebung benötigen einige Drucker möglicherweise bestimmte Einstellungen, und wenn dies erforderlich ist, gehen Sie den Code durch und suchen Sie das Array mit der gewünschten Papierquelle und codieren Sie es fest.