2016-08-03 3 views
0

Я использую приведенный ниже код для вызова моего отчета SSRS о форме окна.как настроить ReportViewer printDialog только для выбранных принтеров

reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Remote; 
       reportViewer1.ServerReport.ReportServerUrl = new Uri(textBox1.Text); 
       reportViewer1.ServerReport.ReportPath = textBox2.Text; 
       reportViewer1.RefreshReport(); 

Теперь после загрузки отчетов о нагрузках, в диалоговом окне печати отображается список всех принтеров. но требование клиента - показать только несколько принтеров в списке избранных принтеров.

enter image description here

, как я могу сделать это с помощью C#?

+0

Вы можете установить параметры принтера по умолчанию с помощью [ReportViewer.PrinterSettings] (https://msdn.microsoft.com/en-us/library/microsoft.reporting.winforms.reportviewer.printersettings.aspx) недвижимость на 'ReportViewer'. Затем они используются для инициализации диалогового окна «Печать»; не уверен, что вы можете продолжать ограничивать показ принтеров. Чтобы удалить и/или скрыть их, это означает, что они удалены, конечно? –

+0

его не работает, я уже пробовал это, –

ответ

0
public static ArrayList GetPrinters() 
    { 
     ArrayList ArrayPrinters = new ArrayList(); 

     PrintDocument prtdoc = new PrintDocument(); 
     //prt.PrinterSettings.PrinterName returns the name of the Default Printer 
     string strDefaultPrinter = prtdoc.PrinterSettings.PrinterName; 

     //this will loop through all the Installed printers and add the Printer Names to a ComboBox. 
     foreach (String strPrinter in PrinterSettings.InstalledPrinters) 
     { 
      //This will insert the Default Printer Name matches with the current Printer Name returned by for loop 
      if (strPrinter.CompareTo(strDefaultPrinter) == 0) 
      { 
       ArrayPrinters.Insert(0, strPrinter); 
      } 
      else 
      { 
       ArrayPrinters.Add(strPrinter); 
      } 
     } 
     return ArrayPrinters; 
    } 
+0

или использовать Combobox для заполнения Papersize, Orientation, PaperSize PrintSettings.SetPaperSize (document, cmbPaperSize1.Text, PaperOrientation.Portrait, cmbPrinter.Text); –

+0

Нет, я хочу показать только ограниченные имена принтеров в списке. Я не хочу менять другие настройки. –

+0

http://stackoverflow.com/questions/22330261/custom-print-dialog-in-c-sharp-net-2-0 –