如何仅为选定的打印机自定义 ReportViewer printDialog

Posted

技术标签:

【中文标题】如何仅为选定的打印机自定义 ReportViewer printDialog【英文标题】:how to customize ReportViewer printDialog for selected printers only 【发布时间】:2016-08-03 10:49:03 【问题描述】:

我正在使用下面的代码在窗口窗体上调用我的 s-s-rS 报告。

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

现在报告加载后,在打印对话框中显示所有打印机列表。但客户要求是在选择的打印机列表中只显示几台打印机。

我如何使用 c# 来做到这一点?

【问题讨论】:

您可以通过ReportViewer 对象上的ReportViewer.PrinterSettings 属性设置默认打印机设置。然后这些用于初始化打印对话框;不确定您是否可以继续限制显示的打印机。删除和/或隐藏它们是否意味着它们肯定会被卸载? 它不起作用,我已经尝试过了, 【参考方案1】:
 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;
    

【讨论】:

或者使用Combobox填充Papersize,Orientation,PaperSize PrintSettings.SetPaperSize(document, cmbPaperSize1.Text, PaperOrientation.Portrait, cmbPrinter.Text); 不,我只想在列表中显示有限的打印机名称。我不想更改其他设置。 ***.com/questions/22330261/…

以上是关于如何仅为选定的打印机自定义 ReportViewer printDialog的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Xamarin 表单中使用 MVVM 仅为集合视图中的选定框架设置颜色?

如何仅为我的自定义 vue 组件包含外部 css 文件?

在自定义RSS提要中仅打印帖子的父类别

如何将一个自定义列表的选定数据显示到同一活动的另一个自定义列表视图

Qt - 如何从 QListWidget 中获取选定的自定义项目?

Xcode:仅为我自己的应用程序创建自定义键盘